<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Spec Export - Sketch MeaXure</title>
    <script>
      /*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */
      !(function (a, b) {
        "object" == typeof module && "object" == typeof module.exports
          ? (module.exports = a.document
              ? b(a, !0)
              : function (a) {
                  if (!a.document)
                    throw new Error("jQuery requires a window with a document");
                  return b(a);
                })
          : b(a);
      })("undefined" != typeof window ? window : this, function (a, b) {
        var c = [],
          d = a.document,
          e = c.slice,
          f = c.concat,
          g = c.push,
          h = c.indexOf,
          i = {},
          j = i.toString,
          k = i.hasOwnProperty,
          l = {},
          m = "2.2.4",
          n = function (a, b) {
            return new n.fn.init(a, b);
          },
          o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
          p = /^-ms-/,
          q = /-([\da-z])/gi,
          r = function (a, b) {
            return b.toUpperCase();
          };
        (n.fn = n.prototype =
          {
            jquery: m,
            constructor: n,
            selector: "",
            length: 0,
            toArray: function () {
              return e.call(this);
            },
            get: function (a) {
              return null != a
                ? 0 > a
                  ? this[a + this.length]
                  : this[a]
                : e.call(this);
            },
            pushStack: function (a) {
              var b = n.merge(this.constructor(), a);
              return (b.prevObject = this), (b.context = this.context), b;
            },
            each: function (a) {
              return n.each(this, a);
            },
            map: function (a) {
              return this.pushStack(
                n.map(this, function (b, c) {
                  return a.call(b, c, b);
                })
              );
            },
            slice: function () {
              return this.pushStack(e.apply(this, arguments));
            },
            first: function () {
              return this.eq(0);
            },
            last: function () {
              return this.eq(-1);
            },
            eq: function (a) {
              var b = this.length,
                c = +a + (0 > a ? b : 0);
              return this.pushStack(c >= 0 && b > c ? [this[c]] : []);
            },
            end: function () {
              return this.prevObject || this.constructor();
            },
            push: g,
            sort: c.sort,
            splice: c.splice,
          }),
          (n.extend = n.fn.extend =
            function () {
              var a,
                b,
                c,
                d,
                e,
                f,
                g = arguments[0] || {},
                h = 1,
                i = arguments.length,
                j = !1;
              for (
                "boolean" == typeof g &&
                  ((j = g), (g = arguments[h] || {}), h++),
                  "object" == typeof g || n.isFunction(g) || (g = {}),
                  h === i && ((g = this), h--);
                i > h;
                h++
              )
                if (null != (a = arguments[h]))
                  for (b in a)
                    (c = g[b]),
                      (d = a[b]),
                      g !== d &&
                        (j && d && (n.isPlainObject(d) || (e = n.isArray(d)))
                          ? (e
                              ? ((e = !1), (f = c && n.isArray(c) ? c : []))
                              : (f = c && n.isPlainObject(c) ? c : {}),
                            (g[b] = n.extend(j, f, d)))
                          : void 0 !== d && (g[b] = d));
              return g;
            }),
          n.extend({
            expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
            isReady: !0,
            error: function (a) {
              throw new Error(a);
            },
            noop: function () {},
            isFunction: function (a) {
              return "function" === n.type(a);
            },
            isArray: Array.isArray,
            isWindow: function (a) {
              return null != a && a === a.window;
            },
            isNumeric: function (a) {
              var b = a && a.toString();
              return !n.isArray(a) && b - parseFloat(b) + 1 >= 0;
            },
            isPlainObject: function (a) {
              var b;
              if ("object" !== n.type(a) || a.nodeType || n.isWindow(a))
                return !1;
              if (
                a.constructor &&
                !k.call(a, "constructor") &&
                !k.call(a.constructor.prototype || {}, "isPrototypeOf")
              )
                return !1;
              for (b in a);
              return void 0 === b || k.call(a, b);
            },
            isEmptyObject: function (a) {
              var b;
              for (b in a) return !1;
              return !0;
            },
            type: function (a) {
              return null == a
                ? a + ""
                : "object" == typeof a || "function" == typeof a
                ? i[j.call(a)] || "object"
                : typeof a;
            },
            globalEval: function (a) {
              var b,
                c = eval;
              (a = n.trim(a)),
                a &&
                  (1 === a.indexOf("use strict")
                    ? ((b = d.createElement("script")),
                      (b.text = a),
                      d.head.appendChild(b).parentNode.removeChild(b))
                    : c(a));
            },
            camelCase: function (a) {
              return a.replace(p, "ms-").replace(q, r);
            },
            nodeName: function (a, b) {
              return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase();
            },
            each: function (a, b) {
              var c,
                d = 0;
              if (s(a)) {
                for (c = a.length; c > d; d++)
                  if (b.call(a[d], d, a[d]) === !1) break;
              } else for (d in a) if (b.call(a[d], d, a[d]) === !1) break;
              return a;
            },
            trim: function (a) {
              return null == a ? "" : (a + "").replace(o, "");
            },
            makeArray: function (a, b) {
              var c = b || [];
              return (
                null != a &&
                  (s(Object(a))
                    ? n.merge(c, "string" == typeof a ? [a] : a)
                    : g.call(c, a)),
                c
              );
            },
            inArray: function (a, b, c) {
              return null == b ? -1 : h.call(b, a, c);
            },
            merge: function (a, b) {
              for (var c = +b.length, d = 0, e = a.length; c > d; d++)
                a[e++] = b[d];
              return (a.length = e), a;
            },
            grep: function (a, b, c) {
              for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)
                (d = !b(a[f], f)), d !== h && e.push(a[f]);
              return e;
            },
            map: function (a, b, c) {
              var d,
                e,
                g = 0,
                h = [];
              if (s(a))
                for (d = a.length; d > g; g++)
                  (e = b(a[g], g, c)), null != e && h.push(e);
              else for (g in a) (e = b(a[g], g, c)), null != e && h.push(e);
              return f.apply([], h);
            },
            guid: 1,
            proxy: function (a, b) {
              var c, d, f;
              return (
                "string" == typeof b && ((c = a[b]), (b = a), (a = c)),
                n.isFunction(a)
                  ? ((d = e.call(arguments, 2)),
                    (f = function () {
                      return a.apply(b || this, d.concat(e.call(arguments)));
                    }),
                    (f.guid = a.guid = a.guid || n.guid++),
                    f)
                  : void 0
              );
            },
            now: Date.now,
            support: l,
          }),
          "function" == typeof Symbol &&
            (n.fn[Symbol.iterator] = c[Symbol.iterator]),
          n.each(
            "Boolean Number String Function Array Date RegExp Object Error Symbol".split(
              " "
            ),
            function (a, b) {
              i["[object " + b + "]"] = b.toLowerCase();
            }
          );
        function s(a) {
          var b = !!a && "length" in a && a.length,
            c = n.type(a);
          return "function" === c || n.isWindow(a)
            ? !1
            : "array" === c ||
                0 === b ||
                ("number" == typeof b && b > 0 && b - 1 in a);
        }
        var t = (function (a) {
          var b,
            c,
            d,
            e,
            f,
            g,
            h,
            i,
            j,
            k,
            l,
            m,
            n,
            o,
            p,
            q,
            r,
            s,
            t,
            u = "sizzle" + 1 * new Date(),
            v = a.document,
            w = 0,
            x = 0,
            y = ga(),
            z = ga(),
            A = ga(),
            B = function (a, b) {
              return a === b && (l = !0), 0;
            },
            C = 1 << 31,
            D = {}.hasOwnProperty,
            E = [],
            F = E.pop,
            G = E.push,
            H = E.push,
            I = E.slice,
            J = function (a, b) {
              for (var c = 0, d = a.length; d > c; c++)
                if (a[c] === b) return c;
              return -1;
            },
            K =
              "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            L = "[\\x20\\t\\r\\n\\f]",
            M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
            N =
              "\\[" +
              L +
              "*(" +
              M +
              ")(?:" +
              L +
              "*([*^$|!~]?=)" +
              L +
              "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" +
              M +
              "))|)" +
              L +
              "*\\]",
            O =
              ":(" +
              M +
              ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" +
              N +
              ")*)|.*)\\)|)",
            P = new RegExp(L + "+", "g"),
            Q = new RegExp(
              "^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$",
              "g"
            ),
            R = new RegExp("^" + L + "*," + L + "*"),
            S = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"),
            T = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"),
            U = new RegExp(O),
            V = new RegExp("^" + M + "$"),
            W = {
              ID: new RegExp("^#(" + M + ")"),
              CLASS: new RegExp("^\\.(" + M + ")"),
              TAG: new RegExp("^(" + M + "|[*])"),
              ATTR: new RegExp("^" + N),
              PSEUDO: new RegExp("^" + O),
              CHILD: new RegExp(
                "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
                  L +
                  "*(even|odd|(([+-]|)(\\d*)n|)" +
                  L +
                  "*(?:([+-]|)" +
                  L +
                  "*(\\d+)|))" +
                  L +
                  "*\\)|)",
                "i"
              ),
              bool: new RegExp("^(?:" + K + ")$", "i"),
              needsContext: new RegExp(
                "^" +
                  L +
                  "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
                  L +
                  "*((?:-\\d)?\\d*)" +
                  L +
                  "*\\)|)(?=[^-]|$)",
                "i"
              ),
            },
            X = /^(?:input|select|textarea|button)$/i,
            Y = /^h\d$/i,
            Z = /^[^{]+\{\s*\[native \w/,
            $ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
            _ = /[+~]/,
            aa = /'|\\/g,
            ba = new RegExp(
              "\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)",
              "ig"
            ),
            ca = function (a, b, c) {
              var d = "0x" + b - 65536;
              return d !== d || c
                ? b
                : 0 > d
                ? String.fromCharCode(d + 65536)
                : String.fromCharCode((d >> 10) | 55296, (1023 & d) | 56320);
            },
            da = function () {
              m();
            };
          try {
            H.apply((E = I.call(v.childNodes)), v.childNodes),
              E[v.childNodes.length].nodeType;
          } catch (ea) {
            H = {
              apply: E.length
                ? function (a, b) {
                    G.apply(a, I.call(b));
                  }
                : function (a, b) {
                    var c = a.length,
                      d = 0;
                    while ((a[c++] = b[d++]));
                    a.length = c - 1;
                  },
            };
          }
          function fa(a, b, d, e) {
            var f,
              h,
              j,
              k,
              l,
              o,
              r,
              s,
              w = b && b.ownerDocument,
              x = b ? b.nodeType : 9;
            if (
              ((d = d || []),
              "string" != typeof a || !a || (1 !== x && 9 !== x && 11 !== x))
            )
              return d;
            if (
              !e &&
              ((b ? b.ownerDocument || b : v) !== n && m(b), (b = b || n), p)
            ) {
              if (11 !== x && (o = $.exec(a)))
                if ((f = o[1])) {
                  if (9 === x) {
                    if (!(j = b.getElementById(f))) return d;
                    if (j.id === f) return d.push(j), d;
                  } else if (
                    w &&
                    (j = w.getElementById(f)) &&
                    t(b, j) &&
                    j.id === f
                  )
                    return d.push(j), d;
                } else {
                  if (o[2]) return H.apply(d, b.getElementsByTagName(a)), d;
                  if (
                    (f = o[3]) &&
                    c.getElementsByClassName &&
                    b.getElementsByClassName
                  )
                    return H.apply(d, b.getElementsByClassName(f)), d;
                }
              if (c.qsa && !A[a + " "] && (!q || !q.test(a))) {
                if (1 !== x) (w = b), (s = a);
                else if ("object" !== b.nodeName.toLowerCase()) {
                  (k = b.getAttribute("id"))
                    ? (k = k.replace(aa, "\\$&"))
                    : b.setAttribute("id", (k = u)),
                    (r = g(a)),
                    (h = r.length),
                    (l = V.test(k) ? "#" + k : "[id='" + k + "']");
                  while (h--) r[h] = l + " " + qa(r[h]);
                  (s = r.join(",")), (w = (_.test(a) && oa(b.parentNode)) || b);
                }
                if (s)
                  try {
                    return H.apply(d, w.querySelectorAll(s)), d;
                  } catch (y) {
                  } finally {
                    k === u && b.removeAttribute("id");
                  }
              }
            }
            return i(a.replace(Q, "$1"), b, d, e);
          }
          function ga() {
            var a = [];
            function b(c, e) {
              return (
                a.push(c + " ") > d.cacheLength && delete b[a.shift()],
                (b[c + " "] = e)
              );
            }
            return b;
          }
          function ha(a) {
            return (a[u] = !0), a;
          }
          function ia(a) {
            var b = n.createElement("div");
            try {
              return !!a(b);
            } catch (c) {
              return !1;
            } finally {
              b.parentNode && b.parentNode.removeChild(b), (b = null);
            }
          }
          function ja(a, b) {
            var c = a.split("|"),
              e = c.length;
            while (e--) d.attrHandle[c[e]] = b;
          }
          function ka(a, b) {
            var c = b && a,
              d =
                c &&
                1 === a.nodeType &&
                1 === b.nodeType &&
                (~b.sourceIndex || C) - (~a.sourceIndex || C);
            if (d) return d;
            if (c) while ((c = c.nextSibling)) if (c === b) return -1;
            return a ? 1 : -1;
          }
          function la(a) {
            return function (b) {
              var c = b.nodeName.toLowerCase();
              return "input" === c && b.type === a;
            };
          }
          function ma(a) {
            return function (b) {
              var c = b.nodeName.toLowerCase();
              return ("input" === c || "button" === c) && b.type === a;
            };
          }
          function na(a) {
            return ha(function (b) {
              return (
                (b = +b),
                ha(function (c, d) {
                  var e,
                    f = a([], c.length, b),
                    g = f.length;
                  while (g--) c[(e = f[g])] && (c[e] = !(d[e] = c[e]));
                })
              );
            });
          }
          function oa(a) {
            return a && "undefined" != typeof a.getElementsByTagName && a;
          }
          (c = fa.support = {}),
            (f = fa.isXML =
              function (a) {
                var b = a && (a.ownerDocument || a).documentElement;
                return b ? "HTML" !== b.nodeName : !1;
              }),
            (m = fa.setDocument =
              function (a) {
                var b,
                  e,
                  g = a ? a.ownerDocument || a : v;
                return g !== n && 9 === g.nodeType && g.documentElement
                  ? ((n = g),
                    (o = n.documentElement),
                    (p = !f(n)),
                    (e = n.defaultView) &&
                      e.top !== e &&
                      (e.addEventListener
                        ? e.addEventListener("unload", da, !1)
                        : e.attachEvent && e.attachEvent("onunload", da)),
                    (c.attributes = ia(function (a) {
                      return (a.className = "i"), !a.getAttribute("className");
                    })),
                    (c.getElementsByTagName = ia(function (a) {
                      return (
                        a.appendChild(n.createComment("")),
                        !a.getElementsByTagName("*").length
                      );
                    })),
                    (c.getElementsByClassName = Z.test(
                      n.getElementsByClassName
                    )),
                    (c.getById = ia(function (a) {
                      return (
                        (o.appendChild(a).id = u),
                        !n.getElementsByName || !n.getElementsByName(u).length
                      );
                    })),
                    c.getById
                      ? ((d.find.ID = function (a, b) {
                          if ("undefined" != typeof b.getElementById && p) {
                            var c = b.getElementById(a);
                            return c ? [c] : [];
                          }
                        }),
                        (d.filter.ID = function (a) {
                          var b = a.replace(ba, ca);
                          return function (a) {
                            return a.getAttribute("id") === b;
                          };
                        }))
                      : (delete d.find.ID,
                        (d.filter.ID = function (a) {
                          var b = a.replace(ba, ca);
                          return function (a) {
                            var c =
                              "undefined" != typeof a.getAttributeNode &&
                              a.getAttributeNode("id");
                            return c && c.value === b;
                          };
                        })),
                    (d.find.TAG = c.getElementsByTagName
                      ? function (a, b) {
                          return "undefined" != typeof b.getElementsByTagName
                            ? b.getElementsByTagName(a)
                            : c.qsa
                            ? b.querySelectorAll(a)
                            : void 0;
                        }
                      : function (a, b) {
                          var c,
                            d = [],
                            e = 0,
                            f = b.getElementsByTagName(a);
                          if ("*" === a) {
                            while ((c = f[e++])) 1 === c.nodeType && d.push(c);
                            return d;
                          }
                          return f;
                        }),
                    (d.find.CLASS =
                      c.getElementsByClassName &&
                      function (a, b) {
                        return "undefined" != typeof b.getElementsByClassName &&
                          p
                          ? b.getElementsByClassName(a)
                          : void 0;
                      }),
                    (r = []),
                    (q = []),
                    (c.qsa = Z.test(n.querySelectorAll)) &&
                      (ia(function (a) {
                        (o.appendChild(a).innerHTML =
                          "<a id='" +
                          u +
                          "'></a><select id='" +
                          u +
                          "-\r\\' msallowcapture=''><option selected=''></option></select>"),
                          a.querySelectorAll("[msallowcapture^='']").length &&
                            q.push("[*^$]=" + L + "*(?:''|\"\")"),
                          a.querySelectorAll("[selected]").length ||
                            q.push("\\[" + L + "*(?:value|" + K + ")"),
                          a.querySelectorAll("[id~=" + u + "-]").length ||
                            q.push("~="),
                          a.querySelectorAll(":checked").length ||
                            q.push(":checked"),
                          a.querySelectorAll("a#" + u + "+*").length ||
                            q.push(".#.+[+~]");
                      }),
                      ia(function (a) {
                        var b = n.createElement("input");
                        b.setAttribute("type", "hidden"),
                          a.appendChild(b).setAttribute("name", "D"),
                          a.querySelectorAll("[name=d]").length &&
                            q.push("name" + L + "*[*^$|!~]?="),
                          a.querySelectorAll(":enabled").length ||
                            q.push(":enabled", ":disabled"),
                          a.querySelectorAll("*,:x"),
                          q.push(",.*:");
                      })),
                    (c.matchesSelector = Z.test(
                      (s =
                        o.matches ||
                        o.webkitMatchesSelector ||
                        o.mozMatchesSelector ||
                        o.oMatchesSelector ||
                        o.msMatchesSelector)
                    )) &&
                      ia(function (a) {
                        (c.disconnectedMatch = s.call(a, "div")),
                          s.call(a, "[s!='']:x"),
                          r.push("!=", O);
                      }),
                    (q = q.length && new RegExp(q.join("|"))),
                    (r = r.length && new RegExp(r.join("|"))),
                    (b = Z.test(o.compareDocumentPosition)),
                    (t =
                      b || Z.test(o.contains)
                        ? function (a, b) {
                            var c = 9 === a.nodeType ? a.documentElement : a,
                              d = b && b.parentNode;
                            return (
                              a === d ||
                              !(
                                !d ||
                                1 !== d.nodeType ||
                                !(c.contains
                                  ? c.contains(d)
                                  : a.compareDocumentPosition &&
                                    16 & a.compareDocumentPosition(d))
                              )
                            );
                          }
                        : function (a, b) {
                            if (b)
                              while ((b = b.parentNode)) if (b === a) return !0;
                            return !1;
                          }),
                    (B = b
                      ? function (a, b) {
                          if (a === b) return (l = !0), 0;
                          var d =
                            !a.compareDocumentPosition -
                            !b.compareDocumentPosition;
                          return d
                            ? d
                            : ((d =
                                (a.ownerDocument || a) ===
                                (b.ownerDocument || b)
                                  ? a.compareDocumentPosition(b)
                                  : 1),
                              1 & d ||
                              (!c.sortDetached &&
                                b.compareDocumentPosition(a) === d)
                                ? a === n || (a.ownerDocument === v && t(v, a))
                                  ? -1
                                  : b === n ||
                                    (b.ownerDocument === v && t(v, b))
                                  ? 1
                                  : k
                                  ? J(k, a) - J(k, b)
                                  : 0
                                : 4 & d
                                ? -1
                                : 1);
                        }
                      : function (a, b) {
                          if (a === b) return (l = !0), 0;
                          var c,
                            d = 0,
                            e = a.parentNode,
                            f = b.parentNode,
                            g = [a],
                            h = [b];
                          if (!e || !f)
                            return a === n
                              ? -1
                              : b === n
                              ? 1
                              : e
                              ? -1
                              : f
                              ? 1
                              : k
                              ? J(k, a) - J(k, b)
                              : 0;
                          if (e === f) return ka(a, b);
                          c = a;
                          while ((c = c.parentNode)) g.unshift(c);
                          c = b;
                          while ((c = c.parentNode)) h.unshift(c);
                          while (g[d] === h[d]) d++;
                          return d
                            ? ka(g[d], h[d])
                            : g[d] === v
                            ? -1
                            : h[d] === v
                            ? 1
                            : 0;
                        }),
                    n)
                  : n;
              }),
            (fa.matches = function (a, b) {
              return fa(a, null, null, b);
            }),
            (fa.matchesSelector = function (a, b) {
              if (
                ((a.ownerDocument || a) !== n && m(a),
                (b = b.replace(T, "='$1']")),
                c.matchesSelector &&
                  p &&
                  !A[b + " "] &&
                  (!r || !r.test(b)) &&
                  (!q || !q.test(b)))
              )
                try {
                  var d = s.call(a, b);
                  if (
                    d ||
                    c.disconnectedMatch ||
                    (a.document && 11 !== a.document.nodeType)
                  )
                    return d;
                } catch (e) {}
              return fa(b, n, null, [a]).length > 0;
            }),
            (fa.contains = function (a, b) {
              return (a.ownerDocument || a) !== n && m(a), t(a, b);
            }),
            (fa.attr = function (a, b) {
              (a.ownerDocument || a) !== n && m(a);
              var e = d.attrHandle[b.toLowerCase()],
                f =
                  e && D.call(d.attrHandle, b.toLowerCase())
                    ? e(a, b, !p)
                    : void 0;
              return void 0 !== f
                ? f
                : c.attributes || !p
                ? a.getAttribute(b)
                : (f = a.getAttributeNode(b)) && f.specified
                ? f.value
                : null;
            }),
            (fa.error = function (a) {
              throw new Error("Syntax error, unrecognized expression: " + a);
            }),
            (fa.uniqueSort = function (a) {
              var b,
                d = [],
                e = 0,
                f = 0;
              if (
                ((l = !c.detectDuplicates),
                (k = !c.sortStable && a.slice(0)),
                a.sort(B),
                l)
              ) {
                while ((b = a[f++])) b === a[f] && (e = d.push(f));
                while (e--) a.splice(d[e], 1);
              }
              return (k = null), a;
            }),
            (e = fa.getText =
              function (a) {
                var b,
                  c = "",
                  d = 0,
                  f = a.nodeType;
                if (f) {
                  if (1 === f || 9 === f || 11 === f) {
                    if ("string" == typeof a.textContent) return a.textContent;
                    for (a = a.firstChild; a; a = a.nextSibling) c += e(a);
                  } else if (3 === f || 4 === f) return a.nodeValue;
                } else while ((b = a[d++])) c += e(b);
                return c;
              }),
            (d = fa.selectors =
              {
                cacheLength: 50,
                createPseudo: ha,
                match: W,
                attrHandle: {},
                find: {},
                relative: {
                  ">": { dir: "parentNode", first: !0 },
                  " ": { dir: "parentNode" },
                  "+": { dir: "previousSibling", first: !0 },
                  "~": { dir: "previousSibling" },
                },
                preFilter: {
                  ATTR: function (a) {
                    return (
                      (a[1] = a[1].replace(ba, ca)),
                      (a[3] = (a[3] || a[4] || a[5] || "").replace(ba, ca)),
                      "~=" === a[2] && (a[3] = " " + a[3] + " "),
                      a.slice(0, 4)
                    );
                  },
                  CHILD: function (a) {
                    return (
                      (a[1] = a[1].toLowerCase()),
                      "nth" === a[1].slice(0, 3)
                        ? (a[3] || fa.error(a[0]),
                          (a[4] = +(a[4]
                            ? a[5] + (a[6] || 1)
                            : 2 * ("even" === a[3] || "odd" === a[3]))),
                          (a[5] = +(a[7] + a[8] || "odd" === a[3])))
                        : a[3] && fa.error(a[0]),
                      a
                    );
                  },
                  PSEUDO: function (a) {
                    var b,
                      c = !a[6] && a[2];
                    return W.CHILD.test(a[0])
                      ? null
                      : (a[3]
                          ? (a[2] = a[4] || a[5] || "")
                          : c &&
                            U.test(c) &&
                            (b = g(c, !0)) &&
                            (b = c.indexOf(")", c.length - b) - c.length) &&
                            ((a[0] = a[0].slice(0, b)), (a[2] = c.slice(0, b))),
                        a.slice(0, 3));
                  },
                },
                filter: {
                  TAG: function (a) {
                    var b = a.replace(ba, ca).toLowerCase();
                    return "*" === a
                      ? function () {
                          return !0;
                        }
                      : function (a) {
                          return a.nodeName && a.nodeName.toLowerCase() === b;
                        };
                  },
                  CLASS: function (a) {
                    var b = y[a + " "];
                    return (
                      b ||
                      ((b = new RegExp(
                        "(^|" + L + ")" + a + "(" + L + "|$)"
                      )) &&
                        y(a, function (a) {
                          return b.test(
                            ("string" == typeof a.className && a.className) ||
                              ("undefined" != typeof a.getAttribute &&
                                a.getAttribute("class")) ||
                              ""
                          );
                        }))
                    );
                  },
                  ATTR: function (a, b, c) {
                    return function (d) {
                      var e = fa.attr(d, a);
                      return null == e
                        ? "!=" === b
                        : b
                        ? ((e += ""),
                          "=" === b
                            ? e === c
                            : "!=" === b
                            ? e !== c
                            : "^=" === b
                            ? c && 0 === e.indexOf(c)
                            : "*=" === b
                            ? c && e.indexOf(c) > -1
                            : "$=" === b
                            ? c && e.slice(-c.length) === c
                            : "~=" === b
                            ? (" " + e.replace(P, " ") + " ").indexOf(c) > -1
                            : "|=" === b
                            ? e === c || e.slice(0, c.length + 1) === c + "-"
                            : !1)
                        : !0;
                    };
                  },
                  CHILD: function (a, b, c, d, e) {
                    var f = "nth" !== a.slice(0, 3),
                      g = "last" !== a.slice(-4),
                      h = "of-type" === b;
                    return 1 === d && 0 === e
                      ? function (a) {
                          return !!a.parentNode;
                        }
                      : function (b, c, i) {
                          var j,
                            k,
                            l,
                            m,
                            n,
                            o,
                            p = f !== g ? "nextSibling" : "previousSibling",
                            q = b.parentNode,
                            r = h && b.nodeName.toLowerCase(),
                            s = !i && !h,
                            t = !1;
                          if (q) {
                            if (f) {
                              while (p) {
                                m = b;
                                while ((m = m[p]))
                                  if (
                                    h
                                      ? m.nodeName.toLowerCase() === r
                                      : 1 === m.nodeType
                                  )
                                    return !1;
                                o = p = "only" === a && !o && "nextSibling";
                              }
                              return !0;
                            }
                            if (
                              ((o = [g ? q.firstChild : q.lastChild]), g && s)
                            ) {
                              (m = q),
                                (l = m[u] || (m[u] = {})),
                                (k = l[m.uniqueID] || (l[m.uniqueID] = {})),
                                (j = k[a] || []),
                                (n = j[0] === w && j[1]),
                                (t = n && j[2]),
                                (m = n && q.childNodes[n]);
                              while (
                                (m =
                                  (++n && m && m[p]) || (t = n = 0) || o.pop())
                              )
                                if (1 === m.nodeType && ++t && m === b) {
                                  k[a] = [w, n, t];
                                  break;
                                }
                            } else if (
                              (s &&
                                ((m = b),
                                (l = m[u] || (m[u] = {})),
                                (k = l[m.uniqueID] || (l[m.uniqueID] = {})),
                                (j = k[a] || []),
                                (n = j[0] === w && j[1]),
                                (t = n)),
                              t === !1)
                            )
                              while (
                                (m =
                                  (++n && m && m[p]) || (t = n = 0) || o.pop())
                              )
                                if (
                                  (h
                                    ? m.nodeName.toLowerCase() === r
                                    : 1 === m.nodeType) &&
                                  ++t &&
                                  (s &&
                                    ((l = m[u] || (m[u] = {})),
                                    (k = l[m.uniqueID] || (l[m.uniqueID] = {})),
                                    (k[a] = [w, t])),
                                  m === b)
                                )
                                  break;
                            return (
                              (t -= e), t === d || (t % d === 0 && t / d >= 0)
                            );
                          }
                        };
                  },
                  PSEUDO: function (a, b) {
                    var c,
                      e =
                        d.pseudos[a] ||
                        d.setFilters[a.toLowerCase()] ||
                        fa.error("unsupported pseudo: " + a);
                    return e[u]
                      ? e(b)
                      : e.length > 1
                      ? ((c = [a, a, "", b]),
                        d.setFilters.hasOwnProperty(a.toLowerCase())
                          ? ha(function (a, c) {
                              var d,
                                f = e(a, b),
                                g = f.length;
                              while (g--)
                                (d = J(a, f[g])), (a[d] = !(c[d] = f[g]));
                            })
                          : function (a) {
                              return e(a, 0, c);
                            })
                      : e;
                  },
                },
                pseudos: {
                  not: ha(function (a) {
                    var b = [],
                      c = [],
                      d = h(a.replace(Q, "$1"));
                    return d[u]
                      ? ha(function (a, b, c, e) {
                          var f,
                            g = d(a, null, e, []),
                            h = a.length;
                          while (h--) (f = g[h]) && (a[h] = !(b[h] = f));
                        })
                      : function (a, e, f) {
                          return (
                            (b[0] = a),
                            d(b, null, f, c),
                            (b[0] = null),
                            !c.pop()
                          );
                        };
                  }),
                  has: ha(function (a) {
                    return function (b) {
                      return fa(a, b).length > 0;
                    };
                  }),
                  contains: ha(function (a) {
                    return (
                      (a = a.replace(ba, ca)),
                      function (b) {
                        return (
                          (b.textContent || b.innerText || e(b)).indexOf(a) > -1
                        );
                      }
                    );
                  }),
                  lang: ha(function (a) {
                    return (
                      V.test(a || "") || fa.error("unsupported lang: " + a),
                      (a = a.replace(ba, ca).toLowerCase()),
                      function (b) {
                        var c;
                        do
                          if (
                            (c = p
                              ? b.lang
                              : b.getAttribute("xml:lang") ||
                                b.getAttribute("lang"))
                          )
                            return (
                              (c = c.toLowerCase()),
                              c === a || 0 === c.indexOf(a + "-")
                            );
                        while ((b = b.parentNode) && 1 === b.nodeType);
                        return !1;
                      }
                    );
                  }),
                  target: function (b) {
                    var c = a.location && a.location.hash;
                    return c && c.slice(1) === b.id;
                  },
                  root: function (a) {
                    return a === o;
                  },
                  focus: function (a) {
                    return (
                      a === n.activeElement &&
                      (!n.hasFocus || n.hasFocus()) &&
                      !!(a.type || a.href || ~a.tabIndex)
                    );
                  },
                  enabled: function (a) {
                    return a.disabled === !1;
                  },
                  disabled: function (a) {
                    return a.disabled === !0;
                  },
                  checked: function (a) {
                    var b = a.nodeName.toLowerCase();
                    return (
                      ("input" === b && !!a.checked) ||
                      ("option" === b && !!a.selected)
                    );
                  },
                  selected: function (a) {
                    return (
                      a.parentNode && a.parentNode.selectedIndex,
                      a.selected === !0
                    );
                  },
                  empty: function (a) {
                    for (a = a.firstChild; a; a = a.nextSibling)
                      if (a.nodeType < 6) return !1;
                    return !0;
                  },
                  parent: function (a) {
                    return !d.pseudos.empty(a);
                  },
                  header: function (a) {
                    return Y.test(a.nodeName);
                  },
                  input: function (a) {
                    return X.test(a.nodeName);
                  },
                  button: function (a) {
                    var b = a.nodeName.toLowerCase();
                    return (
                      ("input" === b && "button" === a.type) || "button" === b
                    );
                  },
                  text: function (a) {
                    var b;
                    return (
                      "input" === a.nodeName.toLowerCase() &&
                      "text" === a.type &&
                      (null == (b = a.getAttribute("type")) ||
                        "text" === b.toLowerCase())
                    );
                  },
                  first: na(function () {
                    return [0];
                  }),
                  last: na(function (a, b) {
                    return [b - 1];
                  }),
                  eq: na(function (a, b, c) {
                    return [0 > c ? c + b : c];
                  }),
                  even: na(function (a, b) {
                    for (var c = 0; b > c; c += 2) a.push(c);
                    return a;
                  }),
                  odd: na(function (a, b) {
                    for (var c = 1; b > c; c += 2) a.push(c);
                    return a;
                  }),
                  lt: na(function (a, b, c) {
                    for (var d = 0 > c ? c + b : c; --d >= 0; ) a.push(d);
                    return a;
                  }),
                  gt: na(function (a, b, c) {
                    for (var d = 0 > c ? c + b : c; ++d < b; ) a.push(d);
                    return a;
                  }),
                },
              }),
            (d.pseudos.nth = d.pseudos.eq);
          for (b in {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0,
          })
            d.pseudos[b] = la(b);
          for (b in { submit: !0, reset: !0 }) d.pseudos[b] = ma(b);
          function pa() {}
          (pa.prototype = d.filters = d.pseudos),
            (d.setFilters = new pa()),
            (g = fa.tokenize =
              function (a, b) {
                var c,
                  e,
                  f,
                  g,
                  h,
                  i,
                  j,
                  k = z[a + " "];
                if (k) return b ? 0 : k.slice(0);
                (h = a), (i = []), (j = d.preFilter);
                while (h) {
                  (c && !(e = R.exec(h))) ||
                    (e && (h = h.slice(e[0].length) || h), i.push((f = []))),
                    (c = !1),
                    (e = S.exec(h)) &&
                      ((c = e.shift()),
                      f.push({ value: c, type: e[0].replace(Q, " ") }),
                      (h = h.slice(c.length)));
                  for (g in d.filter)
                    !(e = W[g].exec(h)) ||
                      (j[g] && !(e = j[g](e))) ||
                      ((c = e.shift()),
                      f.push({ value: c, type: g, matches: e }),
                      (h = h.slice(c.length)));
                  if (!c) break;
                }
                return b ? h.length : h ? fa.error(a) : z(a, i).slice(0);
              });
          function qa(a) {
            for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
            return d;
          }
          function ra(a, b, c) {
            var d = b.dir,
              e = c && "parentNode" === d,
              f = x++;
            return b.first
              ? function (b, c, f) {
                  while ((b = b[d]))
                    if (1 === b.nodeType || e) return a(b, c, f);
                }
              : function (b, c, g) {
                  var h,
                    i,
                    j,
                    k = [w, f];
                  if (g) {
                    while ((b = b[d]))
                      if ((1 === b.nodeType || e) && a(b, c, g)) return !0;
                  } else
                    while ((b = b[d]))
                      if (1 === b.nodeType || e) {
                        if (
                          ((j = b[u] || (b[u] = {})),
                          (i = j[b.uniqueID] || (j[b.uniqueID] = {})),
                          (h = i[d]) && h[0] === w && h[1] === f)
                        )
                          return (k[2] = h[2]);
                        if (((i[d] = k), (k[2] = a(b, c, g)))) return !0;
                      }
                };
          }
          function sa(a) {
            return a.length > 1
              ? function (b, c, d) {
                  var e = a.length;
                  while (e--) if (!a[e](b, c, d)) return !1;
                  return !0;
                }
              : a[0];
          }
          function ta(a, b, c) {
            for (var d = 0, e = b.length; e > d; d++) fa(a, b[d], c);
            return c;
          }
          function ua(a, b, c, d, e) {
            for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)
              (f = a[h]) && ((c && !c(f, d, e)) || (g.push(f), j && b.push(h)));
            return g;
          }
          function va(a, b, c, d, e, f) {
            return (
              d && !d[u] && (d = va(d)),
              e && !e[u] && (e = va(e, f)),
              ha(function (f, g, h, i) {
                var j,
                  k,
                  l,
                  m = [],
                  n = [],
                  o = g.length,
                  p = f || ta(b || "*", h.nodeType ? [h] : h, []),
                  q = !a || (!f && b) ? p : ua(p, m, a, h, i),
                  r = c ? (e || (f ? a : o || d) ? [] : g) : q;
                if ((c && c(q, r, h, i), d)) {
                  (j = ua(r, n)), d(j, [], h, i), (k = j.length);
                  while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l));
                }
                if (f) {
                  if (e || a) {
                    if (e) {
                      (j = []), (k = r.length);
                      while (k--) (l = r[k]) && j.push((q[k] = l));
                      e(null, (r = []), j, i);
                    }
                    k = r.length;
                    while (k--)
                      (l = r[k]) &&
                        (j = e ? J(f, l) : m[k]) > -1 &&
                        (f[j] = !(g[j] = l));
                  }
                } else (r = ua(r === g ? r.splice(o, r.length) : r)), e ? e(null, g, r, i) : H.apply(g, r);
              })
            );
          }
          function wa(a) {
            for (
              var b,
                c,
                e,
                f = a.length,
                g = d.relative[a[0].type],
                h = g || d.relative[" "],
                i = g ? 1 : 0,
                k = ra(
                  function (a) {
                    return a === b;
                  },
                  h,
                  !0
                ),
                l = ra(
                  function (a) {
                    return J(b, a) > -1;
                  },
                  h,
                  !0
                ),
                m = [
                  function (a, c, d) {
                    var e =
                      (!g && (d || c !== j)) ||
                      ((b = c).nodeType ? k(a, c, d) : l(a, c, d));
                    return (b = null), e;
                  },
                ];
              f > i;
              i++
            )
              if ((c = d.relative[a[i].type])) m = [ra(sa(m), c)];
              else {
                if (
                  ((c = d.filter[a[i].type].apply(null, a[i].matches)), c[u])
                ) {
                  for (e = ++i; f > e; e++) if (d.relative[a[e].type]) break;
                  return va(
                    i > 1 && sa(m),
                    i > 1 &&
                      qa(
                        a
                          .slice(0, i - 1)
                          .concat({ value: " " === a[i - 2].type ? "*" : "" })
                      ).replace(Q, "$1"),
                    c,
                    e > i && wa(a.slice(i, e)),
                    f > e && wa((a = a.slice(e))),
                    f > e && qa(a)
                  );
                }
                m.push(c);
              }
            return sa(m);
          }
          function xa(a, b) {
            var c = b.length > 0,
              e = a.length > 0,
              f = function (f, g, h, i, k) {
                var l,
                  o,
                  q,
                  r = 0,
                  s = "0",
                  t = f && [],
                  u = [],
                  v = j,
                  x = f || (e && d.find.TAG("*", k)),
                  y = (w += null == v ? 1 : Math.random() || 0.1),
                  z = x.length;
                for (
                  k && (j = g === n || g || k);
                  s !== z && null != (l = x[s]);
                  s++
                ) {
                  if (e && l) {
                    (o = 0), g || l.ownerDocument === n || (m(l), (h = !p));
                    while ((q = a[o++]))
                      if (q(l, g || n, h)) {
                        i.push(l);
                        break;
                      }
                    k && (w = y);
                  }
                  c && ((l = !q && l) && r--, f && t.push(l));
                }
                if (((r += s), c && s !== r)) {
                  o = 0;
                  while ((q = b[o++])) q(t, u, g, h);
                  if (f) {
                    if (r > 0) while (s--) t[s] || u[s] || (u[s] = F.call(i));
                    u = ua(u);
                  }
                  H.apply(i, u),
                    k &&
                      !f &&
                      u.length > 0 &&
                      r + b.length > 1 &&
                      fa.uniqueSort(i);
                }
                return k && ((w = y), (j = v)), t;
              };
            return c ? ha(f) : f;
          }
          return (
            (h = fa.compile =
              function (a, b) {
                var c,
                  d = [],
                  e = [],
                  f = A[a + " "];
                if (!f) {
                  b || (b = g(a)), (c = b.length);
                  while (c--) (f = wa(b[c])), f[u] ? d.push(f) : e.push(f);
                  (f = A(a, xa(e, d))), (f.selector = a);
                }
                return f;
              }),
            (i = fa.select =
              function (a, b, e, f) {
                var i,
                  j,
                  k,
                  l,
                  m,
                  n = "function" == typeof a && a,
                  o = !f && g((a = n.selector || a));
                if (((e = e || []), 1 === o.length)) {
                  if (
                    ((j = o[0] = o[0].slice(0)),
                    j.length > 2 &&
                      "ID" === (k = j[0]).type &&
                      c.getById &&
                      9 === b.nodeType &&
                      p &&
                      d.relative[j[1].type])
                  ) {
                    if (
                      ((b = (d.find.ID(k.matches[0].replace(ba, ca), b) ||
                        [])[0]),
                      !b)
                    )
                      return e;
                    n && (b = b.parentNode),
                      (a = a.slice(j.shift().value.length));
                  }
                  i = W.needsContext.test(a) ? 0 : j.length;
                  while (i--) {
                    if (((k = j[i]), d.relative[(l = k.type)])) break;
                    if (
                      (m = d.find[l]) &&
                      (f = m(
                        k.matches[0].replace(ba, ca),
                        (_.test(j[0].type) && oa(b.parentNode)) || b
                      ))
                    ) {
                      if ((j.splice(i, 1), (a = f.length && qa(j)), !a))
                        return H.apply(e, f), e;
                      break;
                    }
                  }
                }
                return (
                  (n || h(a, o))(
                    f,
                    b,
                    !p,
                    e,
                    !b || (_.test(a) && oa(b.parentNode)) || b
                  ),
                  e
                );
              }),
            (c.sortStable = u.split("").sort(B).join("") === u),
            (c.detectDuplicates = !!l),
            m(),
            (c.sortDetached = ia(function (a) {
              return 1 & a.compareDocumentPosition(n.createElement("div"));
            })),
            ia(function (a) {
              return (
                (a.innerHTML = "<a href='#'></a>"),
                "#" === a.firstChild.getAttribute("href")
              );
            }) ||
              ja("type|href|height|width", function (a, b, c) {
                return c
                  ? void 0
                  : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2);
              }),
            (c.attributes &&
              ia(function (a) {
                return (
                  (a.innerHTML = "<input/>"),
                  a.firstChild.setAttribute("value", ""),
                  "" === a.firstChild.getAttribute("value")
                );
              })) ||
              ja("value", function (a, b, c) {
                return c || "input" !== a.nodeName.toLowerCase()
                  ? void 0
                  : a.defaultValue;
              }),
            ia(function (a) {
              return null == a.getAttribute("disabled");
            }) ||
              ja(K, function (a, b, c) {
                var d;
                return c
                  ? void 0
                  : a[b] === !0
                  ? b.toLowerCase()
                  : (d = a.getAttributeNode(b)) && d.specified
                  ? d.value
                  : null;
              }),
            fa
          );
        })(a);
        (n.find = t),
          (n.expr = t.selectors),
          (n.expr[":"] = n.expr.pseudos),
          (n.uniqueSort = n.unique = t.uniqueSort),
          (n.text = t.getText),
          (n.isXMLDoc = t.isXML),
          (n.contains = t.contains);
        var u = function (a, b, c) {
            var d = [],
              e = void 0 !== c;
            while ((a = a[b]) && 9 !== a.nodeType)
              if (1 === a.nodeType) {
                if (e && n(a).is(c)) break;
                d.push(a);
              }
            return d;
          },
          v = function (a, b) {
            for (var c = []; a; a = a.nextSibling)
              1 === a.nodeType && a !== b && c.push(a);
            return c;
          },
          w = n.expr.match.needsContext,
          x = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
          y = /^.[^:#\[\.,]*$/;
        function z(a, b, c) {
          if (n.isFunction(b))
            return n.grep(a, function (a, d) {
              return !!b.call(a, d, a) !== c;
            });
          if (b.nodeType)
            return n.grep(a, function (a) {
              return (a === b) !== c;
            });
          if ("string" == typeof b) {
            if (y.test(b)) return n.filter(b, a, c);
            b = n.filter(b, a);
          }
          return n.grep(a, function (a) {
            return h.call(b, a) > -1 !== c;
          });
        }
        (n.filter = function (a, b, c) {
          var d = b[0];
          return (
            c && (a = ":not(" + a + ")"),
            1 === b.length && 1 === d.nodeType
              ? n.find.matchesSelector(d, a)
                ? [d]
                : []
              : n.find.matches(
                  a,
                  n.grep(b, function (a) {
                    return 1 === a.nodeType;
                  })
                )
          );
        }),
          n.fn.extend({
            find: function (a) {
              var b,
                c = this.length,
                d = [],
                e = this;
              if ("string" != typeof a)
                return this.pushStack(
                  n(a).filter(function () {
                    for (b = 0; c > b; b++)
                      if (n.contains(e[b], this)) return !0;
                  })
                );
              for (b = 0; c > b; b++) n.find(a, e[b], d);
              return (
                (d = this.pushStack(c > 1 ? n.unique(d) : d)),
                (d.selector = this.selector ? this.selector + " " + a : a),
                d
              );
            },
            filter: function (a) {
              return this.pushStack(z(this, a || [], !1));
            },
            not: function (a) {
              return this.pushStack(z(this, a || [], !0));
            },
            is: function (a) {
              return !!z(
                this,
                "string" == typeof a && w.test(a) ? n(a) : a || [],
                !1
              ).length;
            },
          });
        var A,
          B = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
          C = (n.fn.init = function (a, b, c) {
            var e, f;
            if (!a) return this;
            if (((c = c || A), "string" == typeof a)) {
              if (
                ((e =
                  "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3
                    ? [null, a, null]
                    : B.exec(a)),
                !e || (!e[1] && b))
              )
                return !b || b.jquery
                  ? (b || c).find(a)
                  : this.constructor(b).find(a);
              if (e[1]) {
                if (
                  ((b = b instanceof n ? b[0] : b),
                  n.merge(
                    this,
                    n.parseHTML(
                      e[1],
                      b && b.nodeType ? b.ownerDocument || b : d,
                      !0
                    )
                  ),
                  x.test(e[1]) && n.isPlainObject(b))
                )
                  for (e in b)
                    n.isFunction(this[e]) ? this[e](b[e]) : this.attr(e, b[e]);
                return this;
              }
              return (
                (f = d.getElementById(e[2])),
                f && f.parentNode && ((this.length = 1), (this[0] = f)),
                (this.context = d),
                (this.selector = a),
                this
              );
            }
            return a.nodeType
              ? ((this.context = this[0] = a), (this.length = 1), this)
              : n.isFunction(a)
              ? void 0 !== c.ready
                ? c.ready(a)
                : a(n)
              : (void 0 !== a.selector &&
                  ((this.selector = a.selector), (this.context = a.context)),
                n.makeArray(a, this));
          });
        (C.prototype = n.fn), (A = n(d));
        var D = /^(?:parents|prev(?:Until|All))/,
          E = { children: !0, contents: !0, next: !0, prev: !0 };
        n.fn.extend({
          has: function (a) {
            var b = n(a, this),
              c = b.length;
            return this.filter(function () {
              for (var a = 0; c > a; a++) if (n.contains(this, b[a])) return !0;
            });
          },
          closest: function (a, b) {
            for (
              var c,
                d = 0,
                e = this.length,
                f = [],
                g =
                  w.test(a) || "string" != typeof a
                    ? n(a, b || this.context)
                    : 0;
              e > d;
              d++
            )
              for (c = this[d]; c && c !== b; c = c.parentNode)
                if (
                  c.nodeType < 11 &&
                  (g
                    ? g.index(c) > -1
                    : 1 === c.nodeType && n.find.matchesSelector(c, a))
                ) {
                  f.push(c);
                  break;
                }
            return this.pushStack(f.length > 1 ? n.uniqueSort(f) : f);
          },
          index: function (a) {
            return a
              ? "string" == typeof a
                ? h.call(n(a), this[0])
                : h.call(this, a.jquery ? a[0] : a)
              : this[0] && this[0].parentNode
              ? this.first().prevAll().length
              : -1;
          },
          add: function (a, b) {
            return this.pushStack(n.uniqueSort(n.merge(this.get(), n(a, b))));
          },
          addBack: function (a) {
            return this.add(
              null == a ? this.prevObject : this.prevObject.filter(a)
            );
          },
        });
        function F(a, b) {
          while ((a = a[b]) && 1 !== a.nodeType);
          return a;
        }
        n.each(
          {
            parent: function (a) {
              var b = a.parentNode;
              return b && 11 !== b.nodeType ? b : null;
            },
            parents: function (a) {
              return u(a, "parentNode");
            },
            parentsUntil: function (a, b, c) {
              return u(a, "parentNode", c);
            },
            next: function (a) {
              return F(a, "nextSibling");
            },
            prev: function (a) {
              return F(a, "previousSibling");
            },
            nextAll: function (a) {
              return u(a, "nextSibling");
            },
            prevAll: function (a) {
              return u(a, "previousSibling");
            },
            nextUntil: function (a, b, c) {
              return u(a, "nextSibling", c);
            },
            prevUntil: function (a, b, c) {
              return u(a, "previousSibling", c);
            },
            siblings: function (a) {
              return v((a.parentNode || {}).firstChild, a);
            },
            children: function (a) {
              return v(a.firstChild);
            },
            contents: function (a) {
              return a.contentDocument || n.merge([], a.childNodes);
            },
          },
          function (a, b) {
            n.fn[a] = function (c, d) {
              var e = n.map(this, b, c);
              return (
                "Until" !== a.slice(-5) && (d = c),
                d && "string" == typeof d && (e = n.filter(d, e)),
                this.length > 1 &&
                  (E[a] || n.uniqueSort(e), D.test(a) && e.reverse()),
                this.pushStack(e)
              );
            };
          }
        );
        var G = /\S+/g;
        function H(a) {
          var b = {};
          return (
            n.each(a.match(G) || [], function (a, c) {
              b[c] = !0;
            }),
            b
          );
        }
        (n.Callbacks = function (a) {
          a = "string" == typeof a ? H(a) : n.extend({}, a);
          var b,
            c,
            d,
            e,
            f = [],
            g = [],
            h = -1,
            i = function () {
              for (e = a.once, d = b = !0; g.length; h = -1) {
                c = g.shift();
                while (++h < f.length)
                  f[h].apply(c[0], c[1]) === !1 &&
                    a.stopOnFalse &&
                    ((h = f.length), (c = !1));
              }
              a.memory || (c = !1), (b = !1), e && (f = c ? [] : "");
            },
            j = {
              add: function () {
                return (
                  f &&
                    (c && !b && ((h = f.length - 1), g.push(c)),
                    (function d(b) {
                      n.each(b, function (b, c) {
                        n.isFunction(c)
                          ? (a.unique && j.has(c)) || f.push(c)
                          : c && c.length && "string" !== n.type(c) && d(c);
                      });
                    })(arguments),
                    c && !b && i()),
                  this
                );
              },
              remove: function () {
                return (
                  n.each(arguments, function (a, b) {
                    var c;
                    while ((c = n.inArray(b, f, c)) > -1)
                      f.splice(c, 1), h >= c && h--;
                  }),
                  this
                );
              },
              has: function (a) {
                return a ? n.inArray(a, f) > -1 : f.length > 0;
              },
              empty: function () {
                return f && (f = []), this;
              },
              disable: function () {
                return (e = g = []), (f = c = ""), this;
              },
              disabled: function () {
                return !f;
              },
              lock: function () {
                return (e = g = []), c || (f = c = ""), this;
              },
              locked: function () {
                return !!e;
              },
              fireWith: function (a, c) {
                return (
                  e ||
                    ((c = c || []),
                    (c = [a, c.slice ? c.slice() : c]),
                    g.push(c),
                    b || i()),
                  this
                );
              },
              fire: function () {
                return j.fireWith(this, arguments), this;
              },
              fired: function () {
                return !!d;
              },
            };
          return j;
        }),
          n.extend({
            Deferred: function (a) {
              var b = [
                  ["resolve", "done", n.Callbacks("once memory"), "resolved"],
                  ["reject", "fail", n.Callbacks("once memory"), "rejected"],
                  ["notify", "progress", n.Callbacks("memory")],
                ],
                c = "pending",
                d = {
                  state: function () {
                    return c;
                  },
                  always: function () {
                    return e.done(arguments).fail(arguments), this;
                  },
                  then: function () {
                    var a = arguments;
                    return n
                      .Deferred(function (c) {
                        n.each(b, function (b, f) {
                          var g = n.isFunction(a[b]) && a[b];
                          e[f[1]](function () {
                            var a = g && g.apply(this, arguments);
                            a && n.isFunction(a.promise)
                              ? a
                                  .promise()
                                  .progress(c.notify)
                                  .done(c.resolve)
                                  .fail(c.reject)
                              : c[f[0] + "With"](
                                  this === d ? c.promise() : this,
                                  g ? [a] : arguments
                                );
                          });
                        }),
                          (a = null);
                      })
                      .promise();
                  },
                  promise: function (a) {
                    return null != a ? n.extend(a, d) : d;
                  },
                },
                e = {};
              return (
                (d.pipe = d.then),
                n.each(b, function (a, f) {
                  var g = f[2],
                    h = f[3];
                  (d[f[1]] = g.add),
                    h &&
                      g.add(
                        function () {
                          c = h;
                        },
                        b[1 ^ a][2].disable,
                        b[2][2].lock
                      ),
                    (e[f[0]] = function () {
                      return (
                        e[f[0] + "With"](this === e ? d : this, arguments), this
                      );
                    }),
                    (e[f[0] + "With"] = g.fireWith);
                }),
                d.promise(e),
                a && a.call(e, e),
                e
              );
            },
            when: function (a) {
              var b = 0,
                c = e.call(arguments),
                d = c.length,
                f = 1 !== d || (a && n.isFunction(a.promise)) ? d : 0,
                g = 1 === f ? a : n.Deferred(),
                h = function (a, b, c) {
                  return function (d) {
                    (b[a] = this),
                      (c[a] = arguments.length > 1 ? e.call(arguments) : d),
                      c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c);
                  };
                },
                i,
                j,
                k;
              if (d > 1)
                for (
                  i = new Array(d), j = new Array(d), k = new Array(d);
                  d > b;
                  b++
                )
                  c[b] && n.isFunction(c[b].promise)
                    ? c[b]
                        .promise()
                        .progress(h(b, j, i))
                        .done(h(b, k, c))
                        .fail(g.reject)
                    : --f;
              return f || g.resolveWith(k, c), g.promise();
            },
          });
        var I;
        (n.fn.ready = function (a) {
          return n.ready.promise().done(a), this;
        }),
          n.extend({
            isReady: !1,
            readyWait: 1,
            holdReady: function (a) {
              a ? n.readyWait++ : n.ready(!0);
            },
            ready: function (a) {
              (a === !0 ? --n.readyWait : n.isReady) ||
                ((n.isReady = !0),
                (a !== !0 && --n.readyWait > 0) ||
                  (I.resolveWith(d, [n]),
                  n.fn.triggerHandler &&
                    (n(d).triggerHandler("ready"), n(d).off("ready"))));
            },
          });
        function J() {
          d.removeEventListener("DOMContentLoaded", J),
            a.removeEventListener("load", J),
            n.ready();
        }
        (n.ready.promise = function (b) {
          return (
            I ||
              ((I = n.Deferred()),
              "complete" === d.readyState ||
              ("loading" !== d.readyState && !d.documentElement.doScroll)
                ? a.setTimeout(n.ready)
                : (d.addEventListener("DOMContentLoaded", J),
                  a.addEventListener("load", J))),
            I.promise(b)
          );
        }),
          n.ready.promise();
        var K = function (a, b, c, d, e, f, g) {
            var h = 0,
              i = a.length,
              j = null == c;
            if ("object" === n.type(c)) {
              e = !0;
              for (h in c) K(a, b, h, c[h], !0, f, g);
            } else if (
              void 0 !== d &&
              ((e = !0),
              n.isFunction(d) || (g = !0),
              j &&
                (g
                  ? (b.call(a, d), (b = null))
                  : ((j = b),
                    (b = function (a, b, c) {
                      return j.call(n(a), c);
                    }))),
              b)
            )
              for (; i > h; h++)
                b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
            return e ? a : j ? b.call(a) : i ? b(a[0], c) : f;
          },
          L = function (a) {
            return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType;
          };
        function M() {
          this.expando = n.expando + M.uid++;
        }
        (M.uid = 1),
          (M.prototype = {
            register: function (a, b) {
              var c = b || {};
              return (
                a.nodeType
                  ? (a[this.expando] = c)
                  : Object.defineProperty(a, this.expando, {
                      value: c,
                      writable: !0,
                      configurable: !0,
                    }),
                a[this.expando]
              );
            },
            cache: function (a) {
              if (!L(a)) return {};
              var b = a[this.expando];
              return (
                b ||
                  ((b = {}),
                  L(a) &&
                    (a.nodeType
                      ? (a[this.expando] = b)
                      : Object.defineProperty(a, this.expando, {
                          value: b,
                          configurable: !0,
                        }))),
                b
              );
            },
            set: function (a, b, c) {
              var d,
                e = this.cache(a);
              if ("string" == typeof b) e[b] = c;
              else for (d in b) e[d] = b[d];
              return e;
            },
            get: function (a, b) {
              return void 0 === b
                ? this.cache(a)
                : a[this.expando] && a[this.expando][b];
            },
            access: function (a, b, c) {
              var d;
              return void 0 === b || (b && "string" == typeof b && void 0 === c)
                ? ((d = this.get(a, b)),
                  void 0 !== d ? d : this.get(a, n.camelCase(b)))
                : (this.set(a, b, c), void 0 !== c ? c : b);
            },
            remove: function (a, b) {
              var c,
                d,
                e,
                f = a[this.expando];
              if (void 0 !== f) {
                if (void 0 === b) this.register(a);
                else {
                  n.isArray(b)
                    ? (d = b.concat(b.map(n.camelCase)))
                    : ((e = n.camelCase(b)),
                      b in f
                        ? (d = [b, e])
                        : ((d = e), (d = d in f ? [d] : d.match(G) || []))),
                    (c = d.length);
                  while (c--) delete f[d[c]];
                }
                (void 0 === b || n.isEmptyObject(f)) &&
                  (a.nodeType
                    ? (a[this.expando] = void 0)
                    : delete a[this.expando]);
              }
            },
            hasData: function (a) {
              var b = a[this.expando];
              return void 0 !== b && !n.isEmptyObject(b);
            },
          });
        var N = new M(),
          O = new M(),
          P = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
          Q = /[A-Z]/g;
        function R(a, b, c) {
          var d;
          if (void 0 === c && 1 === a.nodeType)
            if (
              ((d = "data-" + b.replace(Q, "-$&").toLowerCase()),
              (c = a.getAttribute(d)),
              "string" == typeof c)
            ) {
              try {
                c =
                  "true" === c
                    ? !0
                    : "false" === c
                    ? !1
                    : "null" === c
                    ? null
                    : +c + "" === c
                    ? +c
                    : P.test(c)
                    ? n.parseJSON(c)
                    : c;
              } catch (e) {}
              O.set(a, b, c);
            } else c = void 0;
          return c;
        }
        n.extend({
          hasData: function (a) {
            return O.hasData(a) || N.hasData(a);
          },
          data: function (a, b, c) {
            return O.access(a, b, c);
          },
          removeData: function (a, b) {
            O.remove(a, b);
          },
          _data: function (a, b, c) {
            return N.access(a, b, c);
          },
          _removeData: function (a, b) {
            N.remove(a, b);
          },
        }),
          n.fn.extend({
            data: function (a, b) {
              var c,
                d,
                e,
                f = this[0],
                g = f && f.attributes;
              if (void 0 === a) {
                if (
                  this.length &&
                  ((e = O.get(f)),
                  1 === f.nodeType && !N.get(f, "hasDataAttrs"))
                ) {
                  c = g.length;
                  while (c--)
                    g[c] &&
                      ((d = g[c].name),
                      0 === d.indexOf("data-") &&
                        ((d = n.camelCase(d.slice(5))), R(f, d, e[d])));
                  N.set(f, "hasDataAttrs", !0);
                }
                return e;
              }
              return "object" == typeof a
                ? this.each(function () {
                    O.set(this, a);
                  })
                : K(
                    this,
                    function (b) {
                      var c, d;
                      if (f && void 0 === b) {
                        if (
                          ((c =
                            O.get(f, a) ||
                            O.get(f, a.replace(Q, "-$&").toLowerCase())),
                          void 0 !== c)
                        )
                          return c;
                        if (
                          ((d = n.camelCase(a)),
                          (c = O.get(f, d)),
                          void 0 !== c)
                        )
                          return c;
                        if (((c = R(f, d, void 0)), void 0 !== c)) return c;
                      } else
                        (d = n.camelCase(a)),
                          this.each(function () {
                            var c = O.get(this, d);
                            O.set(this, d, b),
                              a.indexOf("-") > -1 &&
                                void 0 !== c &&
                                O.set(this, a, b);
                          });
                    },
                    null,
                    b,
                    arguments.length > 1,
                    null,
                    !0
                  );
            },
            removeData: function (a) {
              return this.each(function () {
                O.remove(this, a);
              });
            },
          }),
          n.extend({
            queue: function (a, b, c) {
              var d;
              return a
                ? ((b = (b || "fx") + "queue"),
                  (d = N.get(a, b)),
                  c &&
                    (!d || n.isArray(c)
                      ? (d = N.access(a, b, n.makeArray(c)))
                      : d.push(c)),
                  d || [])
                : void 0;
            },
            dequeue: function (a, b) {
              b = b || "fx";
              var c = n.queue(a, b),
                d = c.length,
                e = c.shift(),
                f = n._queueHooks(a, b),
                g = function () {
                  n.dequeue(a, b);
                };
              "inprogress" === e && ((e = c.shift()), d--),
                e &&
                  ("fx" === b && c.unshift("inprogress"),
                  delete f.stop,
                  e.call(a, g, f)),
                !d && f && f.empty.fire();
            },
            _queueHooks: function (a, b) {
              var c = b + "queueHooks";
              return (
                N.get(a, c) ||
                N.access(a, c, {
                  empty: n.Callbacks("once memory").add(function () {
                    N.remove(a, [b + "queue", c]);
                  }),
                })
              );
            },
          }),
          n.fn.extend({
            queue: function (a, b) {
              var c = 2;
              return (
                "string" != typeof a && ((b = a), (a = "fx"), c--),
                arguments.length < c
                  ? n.queue(this[0], a)
                  : void 0 === b
                  ? this
                  : this.each(function () {
                      var c = n.queue(this, a, b);
                      n._queueHooks(this, a),
                        "fx" === a &&
                          "inprogress" !== c[0] &&
                          n.dequeue(this, a);
                    })
              );
            },
            dequeue: function (a) {
              return this.each(function () {
                n.dequeue(this, a);
              });
            },
            clearQueue: function (a) {
              return this.queue(a || "fx", []);
            },
            promise: function (a, b) {
              var c,
                d = 1,
                e = n.Deferred(),
                f = this,
                g = this.length,
                h = function () {
                  --d || e.resolveWith(f, [f]);
                };
              "string" != typeof a && ((b = a), (a = void 0)), (a = a || "fx");
              while (g--)
                (c = N.get(f[g], a + "queueHooks")),
                  c && c.empty && (d++, c.empty.add(h));
              return h(), e.promise(b);
            },
          });
        var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
          T = new RegExp("^(?:([+-])=|)(" + S + ")([a-z%]*)$", "i"),
          U = ["Top", "Right", "Bottom", "Left"],
          V = function (a, b) {
            return (
              (a = b || a),
              "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a)
            );
          };
        function W(a, b, c, d) {
          var e,
            f = 1,
            g = 20,
            h = d
              ? function () {
                  return d.cur();
                }
              : function () {
                  return n.css(a, b, "");
                },
            i = h(),
            j = (c && c[3]) || (n.cssNumber[b] ? "" : "px"),
            k = (n.cssNumber[b] || ("px" !== j && +i)) && T.exec(n.css(a, b));
          if (k && k[3] !== j) {
            (j = j || k[3]), (c = c || []), (k = +i || 1);
            do (f = f || ".5"), (k /= f), n.style(a, b, k + j);
            while (f !== (f = h() / i) && 1 !== f && --g);
          }
          return (
            c &&
              ((k = +k || +i || 0),
              (e = c[1] ? k + (c[1] + 1) * c[2] : +c[2]),
              d && ((d.unit = j), (d.start = k), (d.end = e))),
            e
          );
        }
        var X = /^(?:checkbox|radio)$/i,
          Y = /<([\w:-]+)/,
          Z = /^$|\/(?:java|ecma)script/i,
          $ = {
            option: [1, "<select multiple='multiple'>", "</select>"],
            thead: [1, "<table>", "</table>"],
            col: [2, "<table><colgroup>", "</colgroup></table>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
            _default: [0, "", ""],
          };
        ($.optgroup = $.option),
          ($.tbody = $.tfoot = $.colgroup = $.caption = $.thead),
          ($.th = $.td);
        function _(a, b) {
          var c =
            "undefined" != typeof a.getElementsByTagName
              ? a.getElementsByTagName(b || "*")
              : "undefined" != typeof a.querySelectorAll
              ? a.querySelectorAll(b || "*")
              : [];
          return void 0 === b || (b && n.nodeName(a, b)) ? n.merge([a], c) : c;
        }
        function aa(a, b) {
          for (var c = 0, d = a.length; d > c; c++)
            N.set(a[c], "globalEval", !b || N.get(b[c], "globalEval"));
        }
        var ba = /<|&#?\w+;/;
        function ca(a, b, c, d, e) {
          for (
            var f,
              g,
              h,
              i,
              j,
              k,
              l = b.createDocumentFragment(),
              m = [],
              o = 0,
              p = a.length;
            p > o;
            o++
          )
            if (((f = a[o]), f || 0 === f))
              if ("object" === n.type(f)) n.merge(m, f.nodeType ? [f] : f);
              else if (ba.test(f)) {
                (g = g || l.appendChild(b.createElement("div"))),
                  (h = (Y.exec(f) || ["", ""])[1].toLowerCase()),
                  (i = $[h] || $._default),
                  (g.innerHTML = i[1] + n.htmlPrefilter(f) + i[2]),
                  (k = i[0]);
                while (k--) g = g.lastChild;
                n.merge(m, g.childNodes),
                  (g = l.firstChild),
                  (g.textContent = "");
              } else m.push(b.createTextNode(f));
          (l.textContent = ""), (o = 0);
          while ((f = m[o++]))
            if (d && n.inArray(f, d) > -1) e && e.push(f);
            else if (
              ((j = n.contains(f.ownerDocument, f)),
              (g = _(l.appendChild(f), "script")),
              j && aa(g),
              c)
            ) {
              k = 0;
              while ((f = g[k++])) Z.test(f.type || "") && c.push(f);
            }
          return l;
        }
        !(function () {
          var a = d.createDocumentFragment(),
            b = a.appendChild(d.createElement("div")),
            c = d.createElement("input");
          c.setAttribute("type", "radio"),
            c.setAttribute("checked", "checked"),
            c.setAttribute("name", "t"),
            b.appendChild(c),
            (l.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked),
            (b.innerHTML = "<textarea>x</textarea>"),
            (l.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue);
        })();
        var da = /^key/,
          ea = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
          fa = /^([^.]*)(?:\.(.+)|)/;
        function ga() {
          return !0;
        }
        function ha() {
          return !1;
        }
        function ia() {
          try {
            return d.activeElement;
          } catch (a) {}
        }
        function ja(a, b, c, d, e, f) {
          var g, h;
          if ("object" == typeof b) {
            "string" != typeof c && ((d = d || c), (c = void 0));
            for (h in b) ja(a, h, c, d, b[h], f);
            return a;
          }
          if (
            (null == d && null == e
              ? ((e = c), (d = c = void 0))
              : null == e &&
                ("string" == typeof c
                  ? ((e = d), (d = void 0))
                  : ((e = d), (d = c), (c = void 0))),
            e === !1)
          )
            e = ha;
          else if (!e) return a;
          return (
            1 === f &&
              ((g = e),
              (e = function (a) {
                return n().off(a), g.apply(this, arguments);
              }),
              (e.guid = g.guid || (g.guid = n.guid++))),
            a.each(function () {
              n.event.add(this, b, e, d, c);
            })
          );
        }
        (n.event = {
          global: {},
          add: function (a, b, c, d, e) {
            var f,
              g,
              h,
              i,
              j,
              k,
              l,
              m,
              o,
              p,
              q,
              r = N.get(a);
            if (r) {
              c.handler && ((f = c), (c = f.handler), (e = f.selector)),
                c.guid || (c.guid = n.guid++),
                (i = r.events) || (i = r.events = {}),
                (g = r.handle) ||
                  (g = r.handle =
                    function (b) {
                      return "undefined" != typeof n &&
                        n.event.triggered !== b.type
                        ? n.event.dispatch.apply(a, arguments)
                        : void 0;
                    }),
                (b = (b || "").match(G) || [""]),
                (j = b.length);
              while (j--)
                (h = fa.exec(b[j]) || []),
                  (o = q = h[1]),
                  (p = (h[2] || "").split(".").sort()),
                  o &&
                    ((l = n.event.special[o] || {}),
                    (o = (e ? l.delegateType : l.bindType) || o),
                    (l = n.event.special[o] || {}),
                    (k = n.extend(
                      {
                        type: o,
                        origType: q,
                        data: d,
                        handler: c,
                        guid: c.guid,
                        selector: e,
                        needsContext: e && n.expr.match.needsContext.test(e),
                        namespace: p.join("."),
                      },
                      f
                    )),
                    (m = i[o]) ||
                      ((m = i[o] = []),
                      (m.delegateCount = 0),
                      (l.setup && l.setup.call(a, d, p, g) !== !1) ||
                        (a.addEventListener && a.addEventListener(o, g))),
                    l.add &&
                      (l.add.call(a, k),
                      k.handler.guid || (k.handler.guid = c.guid)),
                    e ? m.splice(m.delegateCount++, 0, k) : m.push(k),
                    (n.event.global[o] = !0));
            }
          },
          remove: function (a, b, c, d, e) {
            var f,
              g,
              h,
              i,
              j,
              k,
              l,
              m,
              o,
              p,
              q,
              r = N.hasData(a) && N.get(a);
            if (r && (i = r.events)) {
              (b = (b || "").match(G) || [""]), (j = b.length);
              while (j--)
                if (
                  ((h = fa.exec(b[j]) || []),
                  (o = q = h[1]),
                  (p = (h[2] || "").split(".").sort()),
                  o)
                ) {
                  (l = n.event.special[o] || {}),
                    (o = (d ? l.delegateType : l.bindType) || o),
                    (m = i[o] || []),
                    (h =
                      h[2] &&
                      new RegExp(
                        "(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"
                      )),
                    (g = f = m.length);
                  while (f--)
                    (k = m[f]),
                      (!e && q !== k.origType) ||
                        (c && c.guid !== k.guid) ||
                        (h && !h.test(k.namespace)) ||
                        (d &&
                          d !== k.selector &&
                          ("**" !== d || !k.selector)) ||
                        (m.splice(f, 1),
                        k.selector && m.delegateCount--,
                        l.remove && l.remove.call(a, k));
                  g &&
                    !m.length &&
                    ((l.teardown && l.teardown.call(a, p, r.handle) !== !1) ||
                      n.removeEvent(a, o, r.handle),
                    delete i[o]);
                } else for (o in i) n.event.remove(a, o + b[j], c, d, !0);
              n.isEmptyObject(i) && N.remove(a, "handle events");
            }
          },
          dispatch: function (a) {
            a = n.event.fix(a);
            var b,
              c,
              d,
              f,
              g,
              h = [],
              i = e.call(arguments),
              j = (N.get(this, "events") || {})[a.type] || [],
              k = n.event.special[a.type] || {};
            if (
              ((i[0] = a),
              (a.delegateTarget = this),
              !k.preDispatch || k.preDispatch.call(this, a) !== !1)
            ) {
              (h = n.event.handlers.call(this, a, j)), (b = 0);
              while ((f = h[b++]) && !a.isPropagationStopped()) {
                (a.currentTarget = f.elem), (c = 0);
                while (
                  (g = f.handlers[c++]) &&
                  !a.isImmediatePropagationStopped()
                )
                  (a.rnamespace && !a.rnamespace.test(g.namespace)) ||
                    ((a.handleObj = g),
                    (a.data = g.data),
                    (d = (
                      (n.event.special[g.origType] || {}).handle || g.handler
                    ).apply(f.elem, i)),
                    void 0 !== d &&
                      (a.result = d) === !1 &&
                      (a.preventDefault(), a.stopPropagation()));
              }
              return k.postDispatch && k.postDispatch.call(this, a), a.result;
            }
          },
          handlers: function (a, b) {
            var c,
              d,
              e,
              f,
              g = [],
              h = b.delegateCount,
              i = a.target;
            if (
              h &&
              i.nodeType &&
              ("click" !== a.type || isNaN(a.button) || a.button < 1)
            )
              for (; i !== this; i = i.parentNode || this)
                if (
                  1 === i.nodeType &&
                  (i.disabled !== !0 || "click" !== a.type)
                ) {
                  for (d = [], c = 0; h > c; c++)
                    (f = b[c]),
                      (e = f.selector + " "),
                      void 0 === d[e] &&
                        (d[e] = f.needsContext
                          ? n(e, this).index(i) > -1
                          : n.find(e, this, null, [i]).length),
                      d[e] && d.push(f);
                  d.length && g.push({ elem: i, handlers: d });
                }
            return (
              h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g
            );
          },
          props:
            "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
              " "
            ),
          fixHooks: {},
          keyHooks: {
            props: "char charCode key keyCode".split(" "),
            filter: function (a, b) {
              return (
                null == a.which &&
                  (a.which = null != b.charCode ? b.charCode : b.keyCode),
                a
              );
            },
          },
          mouseHooks: {
            props:
              "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(
                " "
              ),
            filter: function (a, b) {
              var c,
                e,
                f,
                g = b.button;
              return (
                null == a.pageX &&
                  null != b.clientX &&
                  ((c = a.target.ownerDocument || d),
                  (e = c.documentElement),
                  (f = c.body),
                  (a.pageX =
                    b.clientX +
                    ((e && e.scrollLeft) || (f && f.scrollLeft) || 0) -
                    ((e && e.clientLeft) || (f && f.clientLeft) || 0)),
                  (a.pageY =
                    b.clientY +
                    ((e && e.scrollTop) || (f && f.scrollTop) || 0) -
                    ((e && e.clientTop) || (f && f.clientTop) || 0))),
                a.which ||
                  void 0 === g ||
                  (a.which = 1 & g ? 1 : 2 & g ? 3 : 4 & g ? 2 : 0),
                a
              );
            },
          },
          fix: function (a) {
            if (a[n.expando]) return a;
            var b,
              c,
              e,
              f = a.type,
              g = a,
              h = this.fixHooks[f];
            h ||
              (this.fixHooks[f] = h =
                ea.test(f) ? this.mouseHooks : da.test(f) ? this.keyHooks : {}),
              (e = h.props ? this.props.concat(h.props) : this.props),
              (a = new n.Event(g)),
              (b = e.length);
            while (b--) (c = e[b]), (a[c] = g[c]);
            return (
              a.target || (a.target = d),
              3 === a.target.nodeType && (a.target = a.target.parentNode),
              h.filter ? h.filter(a, g) : a
            );
          },
          special: {
            load: { noBubble: !0 },
            focus: {
              trigger: function () {
                return this !== ia() && this.focus
                  ? (this.focus(), !1)
                  : void 0;
              },
              delegateType: "focusin",
            },
            blur: {
              trigger: function () {
                return this === ia() && this.blur ? (this.blur(), !1) : void 0;
              },
              delegateType: "focusout",
            },
            click: {
              trigger: function () {
                return "checkbox" === this.type &&
                  this.click &&
                  n.nodeName(this, "input")
                  ? (this.click(), !1)
                  : void 0;
              },
              _default: function (a) {
                return n.nodeName(a.target, "a");
              },
            },
            beforeunload: {
              postDispatch: function (a) {
                void 0 !== a.result &&
                  a.originalEvent &&
                  (a.originalEvent.returnValue = a.result);
              },
            },
          },
        }),
          (n.removeEvent = function (a, b, c) {
            a.removeEventListener && a.removeEventListener(b, c);
          }),
          (n.Event = function (a, b) {
            return this instanceof n.Event
              ? (a && a.type
                  ? ((this.originalEvent = a),
                    (this.type = a.type),
                    (this.isDefaultPrevented =
                      a.defaultPrevented ||
                      (void 0 === a.defaultPrevented && a.returnValue === !1)
                        ? ga
                        : ha))
                  : (this.type = a),
                b && n.extend(this, b),
                (this.timeStamp = (a && a.timeStamp) || n.now()),
                void (this[n.expando] = !0))
              : new n.Event(a, b);
          }),
          (n.Event.prototype = {
            constructor: n.Event,
            isDefaultPrevented: ha,
            isPropagationStopped: ha,
            isImmediatePropagationStopped: ha,
            isSimulated: !1,
            preventDefault: function () {
              var a = this.originalEvent;
              (this.isDefaultPrevented = ga),
                a && !this.isSimulated && a.preventDefault();
            },
            stopPropagation: function () {
              var a = this.originalEvent;
              (this.isPropagationStopped = ga),
                a && !this.isSimulated && a.stopPropagation();
            },
            stopImmediatePropagation: function () {
              var a = this.originalEvent;
              (this.isImmediatePropagationStopped = ga),
                a && !this.isSimulated && a.stopImmediatePropagation(),
                this.stopPropagation();
            },
          }),
          n.each(
            {
              mouseenter: "mouseover",
              mouseleave: "mouseout",
              pointerenter: "pointerover",
              pointerleave: "pointerout",
            },
            function (a, b) {
              n.event.special[a] = {
                delegateType: b,
                bindType: b,
                handle: function (a) {
                  var c,
                    d = this,
                    e = a.relatedTarget,
                    f = a.handleObj;
                  return (
                    (e && (e === d || n.contains(d, e))) ||
                      ((a.type = f.origType),
                      (c = f.handler.apply(this, arguments)),
                      (a.type = b)),
                    c
                  );
                },
              };
            }
          ),
          n.fn.extend({
            on: function (a, b, c, d) {
              return ja(this, a, b, c, d);
            },
            one: function (a, b, c, d) {
              return ja(this, a, b, c, d, 1);
            },
            off: function (a, b, c) {
              var d, e;
              if (a && a.preventDefault && a.handleObj)
                return (
                  (d = a.handleObj),
                  n(a.delegateTarget).off(
                    d.namespace ? d.origType + "." + d.namespace : d.origType,
                    d.selector,
                    d.handler
                  ),
                  this
                );
              if ("object" == typeof a) {
                for (e in a) this.off(e, b, a[e]);
                return this;
              }
              return (
                (b !== !1 && "function" != typeof b) || ((c = b), (b = void 0)),
                c === !1 && (c = ha),
                this.each(function () {
                  n.event.remove(this, a, c, b);
                })
              );
            },
          });
        var ka =
            /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
          la = /<script|<style|<link/i,
          ma = /checked\s*(?:[^=]|=\s*.checked.)/i,
          na = /^true\/(.*)/,
          oa = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
        function pa(a, b) {
          return n.nodeName(a, "table") &&
            n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr")
            ? a.getElementsByTagName("tbody")[0] ||
                a.appendChild(a.ownerDocument.createElement("tbody"))
            : a;
        }
        function qa(a) {
          return (a.type = (null !== a.getAttribute("type")) + "/" + a.type), a;
        }
        function ra(a) {
          var b = na.exec(a.type);
          return b ? (a.type = b[1]) : a.removeAttribute("type"), a;
        }
        function sa(a, b) {
          var c, d, e, f, g, h, i, j;
          if (1 === b.nodeType) {
            if (
              N.hasData(a) &&
              ((f = N.access(a)), (g = N.set(b, f)), (j = f.events))
            ) {
              delete g.handle, (g.events = {});
              for (e in j)
                for (c = 0, d = j[e].length; d > c; c++)
                  n.event.add(b, e, j[e][c]);
            }
            O.hasData(a) &&
              ((h = O.access(a)), (i = n.extend({}, h)), O.set(b, i));
          }
        }
        function ta(a, b) {
          var c = b.nodeName.toLowerCase();
          "input" === c && X.test(a.type)
            ? (b.checked = a.checked)
            : ("input" !== c && "textarea" !== c) ||
              (b.defaultValue = a.defaultValue);
        }
        function ua(a, b, c, d) {
          b = f.apply([], b);
          var e,
            g,
            h,
            i,
            j,
            k,
            m = 0,
            o = a.length,
            p = o - 1,
            q = b[0],
            r = n.isFunction(q);
          if (
            r ||
            (o > 1 && "string" == typeof q && !l.checkClone && ma.test(q))
          )
            return a.each(function (e) {
              var f = a.eq(e);
              r && (b[0] = q.call(this, e, f.html())), ua(f, b, c, d);
            });
          if (
            o &&
            ((e = ca(b, a[0].ownerDocument, !1, a, d)),
            (g = e.firstChild),
            1 === e.childNodes.length && (e = g),
            g || d)
          ) {
            for (h = n.map(_(e, "script"), qa), i = h.length; o > m; m++)
              (j = e),
                m !== p &&
                  ((j = n.clone(j, !0, !0)), i && n.merge(h, _(j, "script"))),
                c.call(a[m], j, m);
            if (i)
              for (
                k = h[h.length - 1].ownerDocument, n.map(h, ra), m = 0;
                i > m;
                m++
              )
                (j = h[m]),
                  Z.test(j.type || "") &&
                    !N.access(j, "globalEval") &&
                    n.contains(k, j) &&
                    (j.src
                      ? n._evalUrl && n._evalUrl(j.src)
                      : n.globalEval(j.textContent.replace(oa, "")));
          }
          return a;
        }
        function va(a, b, c) {
          for (
            var d, e = b ? n.filter(b, a) : a, f = 0;
            null != (d = e[f]);
            f++
          )
            c || 1 !== d.nodeType || n.cleanData(_(d)),
              d.parentNode &&
                (c && n.contains(d.ownerDocument, d) && aa(_(d, "script")),
                d.parentNode.removeChild(d));
          return a;
        }
        n.extend({
          htmlPrefilter: function (a) {
            return a.replace(ka, "<$1></$2>");
          },
          clone: function (a, b, c) {
            var d,
              e,
              f,
              g,
              h = a.cloneNode(!0),
              i = n.contains(a.ownerDocument, a);
            if (
              !(
                l.noCloneChecked ||
                (1 !== a.nodeType && 11 !== a.nodeType) ||
                n.isXMLDoc(a)
              )
            )
              for (g = _(h), f = _(a), d = 0, e = f.length; e > d; d++)
                ta(f[d], g[d]);
            if (b)
              if (c)
                for (
                  f = f || _(a), g = g || _(h), d = 0, e = f.length;
                  e > d;
                  d++
                )
                  sa(f[d], g[d]);
              else sa(a, h);
            return (
              (g = _(h, "script")),
              g.length > 0 && aa(g, !i && _(a, "script")),
              h
            );
          },
          cleanData: function (a) {
            for (
              var b, c, d, e = n.event.special, f = 0;
              void 0 !== (c = a[f]);
              f++
            )
              if (L(c)) {
                if ((b = c[N.expando])) {
                  if (b.events)
                    for (d in b.events)
                      e[d]
                        ? n.event.remove(c, d)
                        : n.removeEvent(c, d, b.handle);
                  c[N.expando] = void 0;
                }
                c[O.expando] && (c[O.expando] = void 0);
              }
          },
        }),
          n.fn.extend({
            domManip: ua,
            detach: function (a) {
              return va(this, a, !0);
            },
            remove: function (a) {
              return va(this, a);
            },
            text: function (a) {
              return K(
                this,
                function (a) {
                  return void 0 === a
                    ? n.text(this)
                    : this.empty().each(function () {
                        (1 !== this.nodeType &&
                          11 !== this.nodeType &&
                          9 !== this.nodeType) ||
                          (this.textContent = a);
                      });
                },
                null,
                a,
                arguments.length
              );
            },
            append: function () {
              return ua(this, arguments, function (a) {
                if (
                  1 === this.nodeType ||
                  11 === this.nodeType ||
                  9 === this.nodeType
                ) {
                  var b = pa(this, a);
                  b.appendChild(a);
                }
              });
            },
            prepend: function () {
              return ua(this, arguments, function (a) {
                if (
                  1 === this.nodeType ||
                  11 === this.nodeType ||
                  9 === this.nodeType
                ) {
                  var b = pa(this, a);
                  b.insertBefore(a, b.firstChild);
                }
              });
            },
            before: function () {
              return ua(this, arguments, function (a) {
                this.parentNode && this.parentNode.insertBefore(a, this);
              });
            },
            after: function () {
              return ua(this, arguments, function (a) {
                this.parentNode &&
                  this.parentNode.insertBefore(a, this.nextSibling);
              });
            },
            empty: function () {
              for (var a, b = 0; null != (a = this[b]); b++)
                1 === a.nodeType &&
                  (n.cleanData(_(a, !1)), (a.textContent = ""));
              return this;
            },
            clone: function (a, b) {
              return (
                (a = null == a ? !1 : a),
                (b = null == b ? a : b),
                this.map(function () {
                  return n.clone(this, a, b);
                })
              );
            },
            html: function (a) {
              return K(
                this,
                function (a) {
                  var b = this[0] || {},
                    c = 0,
                    d = this.length;
                  if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
                  if (
                    "string" == typeof a &&
                    !la.test(a) &&
                    !$[(Y.exec(a) || ["", ""])[1].toLowerCase()]
                  ) {
                    a = n.htmlPrefilter(a);
                    try {
                      for (; d > c; c++)
                        (b = this[c] || {}),
                          1 === b.nodeType &&
                            (n.cleanData(_(b, !1)), (b.innerHTML = a));
                      b = 0;
                    } catch (e) {}
                  }
                  b && this.empty().append(a);
                },
                null,
                a,
                arguments.length
              );
            },
            replaceWith: function () {
              var a = [];
              return ua(
                this,
                arguments,
                function (b) {
                  var c = this.parentNode;
                  n.inArray(this, a) < 0 &&
                    (n.cleanData(_(this)), c && c.replaceChild(b, this));
                },
                a
              );
            },
          }),
          n.each(
            {
              appendTo: "append",
              prependTo: "prepend",
              insertBefore: "before",
              insertAfter: "after",
              replaceAll: "replaceWith",
            },
            function (a, b) {
              n.fn[a] = function (a) {
                for (
                  var c, d = [], e = n(a), f = e.length - 1, h = 0;
                  f >= h;
                  h++
                )
                  (c = h === f ? this : this.clone(!0)),
                    n(e[h])[b](c),
                    g.apply(d, c.get());
                return this.pushStack(d);
              };
            }
          );
        var wa,
          xa = { HTML: "block", BODY: "block" };
        function ya(a, b) {
          var c = n(b.createElement(a)).appendTo(b.body),
            d = n.css(c[0], "display");
          return c.detach(), d;
        }
        function za(a) {
          var b = d,
            c = xa[a];
          return (
            c ||
              ((c = ya(a, b)),
              ("none" !== c && c) ||
                ((wa = (
                  wa || n("<iframe frameborder='0' width='0' height='0'/>")
                ).appendTo(b.documentElement)),
                (b = wa[0].contentDocument),
                b.write(),
                b.close(),
                (c = ya(a, b)),
                wa.detach()),
              (xa[a] = c)),
            c
          );
        }
        var Aa = /^margin/,
          Ba = new RegExp("^(" + S + ")(?!px)[a-z%]+$", "i"),
          Ca = function (b) {
            var c = b.ownerDocument.defaultView;
            return (c && c.opener) || (c = a), c.getComputedStyle(b);
          },
          Da = function (a, b, c, d) {
            var e,
              f,
              g = {};
            for (f in b) (g[f] = a.style[f]), (a.style[f] = b[f]);
            e = c.apply(a, d || []);
            for (f in b) a.style[f] = g[f];
            return e;
          },
          Ea = d.documentElement;
        !(function () {
          var b,
            c,
            e,
            f,
            g = d.createElement("div"),
            h = d.createElement("div");
          if (h.style) {
            (h.style.backgroundClip = "content-box"),
              (h.cloneNode(!0).style.backgroundClip = ""),
              (l.clearCloneStyle = "content-box" === h.style.backgroundClip),
              (g.style.cssText =
                "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute"),
              g.appendChild(h);
            function i() {
              (h.style.cssText =
                "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%"),
                (h.innerHTML = ""),
                Ea.appendChild(g);
              var d = a.getComputedStyle(h);
              (b = "1%" !== d.top),
                (f = "2px" === d.marginLeft),
                (c = "4px" === d.width),
                (h.style.marginRight = "50%"),
                (e = "4px" === d.marginRight),
                Ea.removeChild(g);
            }
            n.extend(l, {
              pixelPosition: function () {
                return i(), b;
              },
              boxSizingReliable: function () {
                return null == c && i(), c;
              },
              pixelMarginRight: function () {
                return null == c && i(), e;
              },
              reliableMarginLeft: function () {
                return null == c && i(), f;
              },
              reliableMarginRight: function () {
                var b,
                  c = h.appendChild(d.createElement("div"));
                return (
                  (c.style.cssText = h.style.cssText =
                    "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0"),
                  (c.style.marginRight = c.style.width = "0"),
                  (h.style.width = "1px"),
                  Ea.appendChild(g),
                  (b = !parseFloat(a.getComputedStyle(c).marginRight)),
                  Ea.removeChild(g),
                  h.removeChild(c),
                  b
                );
              },
            });
          }
        })();
        function Fa(a, b, c) {
          var d,
            e,
            f,
            g,
            h = a.style;
          return (
            (c = c || Ca(a)),
            (g = c ? c.getPropertyValue(b) || c[b] : void 0),
            ("" !== g && void 0 !== g) ||
              n.contains(a.ownerDocument, a) ||
              (g = n.style(a, b)),
            c &&
              !l.pixelMarginRight() &&
              Ba.test(g) &&
              Aa.test(b) &&
              ((d = h.width),
              (e = h.minWidth),
              (f = h.maxWidth),
              (h.minWidth = h.maxWidth = h.width = g),
              (g = c.width),
              (h.width = d),
              (h.minWidth = e),
              (h.maxWidth = f)),
            void 0 !== g ? g + "" : g
          );
        }
        function Ga(a, b) {
          return {
            get: function () {
              return a()
                ? void delete this.get
                : (this.get = b).apply(this, arguments);
            },
          };
        }
        var Ha = /^(none|table(?!-c[ea]).+)/,
          Ia = { position: "absolute", visibility: "hidden", display: "block" },
          Ja = { letterSpacing: "0", fontWeight: "400" },
          Ka = ["Webkit", "O", "Moz", "ms"],
          La = d.createElement("div").style;
        function Ma(a) {
          if (a in La) return a;
          var b = a[0].toUpperCase() + a.slice(1),
            c = Ka.length;
          while (c--) if (((a = Ka[c] + b), a in La)) return a;
        }
        function Na(a, b, c) {
          var d = T.exec(b);
          return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b;
        }
        function Oa(a, b, c, d, e) {
          for (
            var f =
                c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0,
              g = 0;
            4 > f;
            f += 2
          )
            "margin" === c && (g += n.css(a, c + U[f], !0, e)),
              d
                ? ("content" === c && (g -= n.css(a, "padding" + U[f], !0, e)),
                  "margin" !== c &&
                    (g -= n.css(a, "border" + U[f] + "Width", !0, e)))
                : ((g += n.css(a, "padding" + U[f], !0, e)),
                  "padding" !== c &&
                    (g += n.css(a, "border" + U[f] + "Width", !0, e)));
          return g;
        }
        function Pa(a, b, c) {
          var d = !0,
            e = "width" === b ? a.offsetWidth : a.offsetHeight,
            f = Ca(a),
            g = "border-box" === n.css(a, "boxSizing", !1, f);
          if (0 >= e || null == e) {
            if (
              ((e = Fa(a, b, f)),
              (0 > e || null == e) && (e = a.style[b]),
              Ba.test(e))
            )
              return e;
            (d = g && (l.boxSizingReliable() || e === a.style[b])),
              (e = parseFloat(e) || 0);
          }
          return e + Oa(a, b, c || (g ? "border" : "content"), d, f) + "px";
        }
        function Qa(a, b) {
          for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++)
            (d = a[g]),
              d.style &&
                ((f[g] = N.get(d, "olddisplay")),
                (c = d.style.display),
                b
                  ? (f[g] || "none" !== c || (d.style.display = ""),
                    "" === d.style.display &&
                      V(d) &&
                      (f[g] = N.access(d, "olddisplay", za(d.nodeName))))
                  : ((e = V(d)),
                    ("none" === c && e) ||
                      N.set(d, "olddisplay", e ? c : n.css(d, "display"))));
          for (g = 0; h > g; g++)
            (d = a[g]),
              d.style &&
                ((b && "none" !== d.style.display && "" !== d.style.display) ||
                  (d.style.display = b ? f[g] || "" : "none"));
          return a;
        }
        n.extend({
          cssHooks: {
            opacity: {
              get: function (a, b) {
                if (b) {
                  var c = Fa(a, "opacity");
                  return "" === c ? "1" : c;
                }
              },
            },
          },
          cssNumber: {
            animationIterationCount: !0,
            columnCount: !0,
            fillOpacity: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
          },
          cssProps: { float: "cssFloat" },
          style: function (a, b, c, d) {
            if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
              var e,
                f,
                g,
                h = n.camelCase(b),
                i = a.style;
              return (
                (b = n.cssProps[h] || (n.cssProps[h] = Ma(h) || h)),
                (g = n.cssHooks[b] || n.cssHooks[h]),
                void 0 === c
                  ? g && "get" in g && void 0 !== (e = g.get(a, !1, d))
                    ? e
                    : i[b]
                  : ((f = typeof c),
                    "string" === f &&
                      (e = T.exec(c)) &&
                      e[1] &&
                      ((c = W(a, b, e)), (f = "number")),
                    null != c &&
                      c === c &&
                      ("number" === f &&
                        (c += (e && e[3]) || (n.cssNumber[h] ? "" : "px")),
                      l.clearCloneStyle ||
                        "" !== c ||
                        0 !== b.indexOf("background") ||
                        (i[b] = "inherit"),
                      (g && "set" in g && void 0 === (c = g.set(a, c, d))) ||
                        (i[b] = c)),
                    void 0)
              );
            }
          },
          css: function (a, b, c, d) {
            var e,
              f,
              g,
              h = n.camelCase(b);
            return (
              (b = n.cssProps[h] || (n.cssProps[h] = Ma(h) || h)),
              (g = n.cssHooks[b] || n.cssHooks[h]),
              g && "get" in g && (e = g.get(a, !0, c)),
              void 0 === e && (e = Fa(a, b, d)),
              "normal" === e && b in Ja && (e = Ja[b]),
              "" === c || c
                ? ((f = parseFloat(e)), c === !0 || isFinite(f) ? f || 0 : e)
                : e
            );
          },
        }),
          n.each(["height", "width"], function (a, b) {
            n.cssHooks[b] = {
              get: function (a, c, d) {
                return c
                  ? Ha.test(n.css(a, "display")) && 0 === a.offsetWidth
                    ? Da(a, Ia, function () {
                        return Pa(a, b, d);
                      })
                    : Pa(a, b, d)
                  : void 0;
              },
              set: function (a, c, d) {
                var e,
                  f = d && Ca(a),
                  g =
                    d &&
                    Oa(
                      a,
                      b,
                      d,
                      "border-box" === n.css(a, "boxSizing", !1, f),
                      f
                    );
                return (
                  g &&
                    (e = T.exec(c)) &&
                    "px" !== (e[3] || "px") &&
                    ((a.style[b] = c), (c = n.css(a, b))),
                  Na(a, c, g)
                );
              },
            };
          }),
          (n.cssHooks.marginLeft = Ga(l.reliableMarginLeft, function (a, b) {
            return b
              ? (parseFloat(Fa(a, "marginLeft")) ||
                  a.getBoundingClientRect().left -
                    Da(a, { marginLeft: 0 }, function () {
                      return a.getBoundingClientRect().left;
                    })) + "px"
              : void 0;
          })),
          (n.cssHooks.marginRight = Ga(l.reliableMarginRight, function (a, b) {
            return b
              ? Da(a, { display: "inline-block" }, Fa, [a, "marginRight"])
              : void 0;
          })),
          n.each({ margin: "", padding: "", border: "Width" }, function (a, b) {
            (n.cssHooks[a + b] = {
              expand: function (c) {
                for (
                  var d = 0,
                    e = {},
                    f = "string" == typeof c ? c.split(" ") : [c];
                  4 > d;
                  d++
                )
                  e[a + U[d] + b] = f[d] || f[d - 2] || f[0];
                return e;
              },
            }),
              Aa.test(a) || (n.cssHooks[a + b].set = Na);
          }),
          n.fn.extend({
            css: function (a, b) {
              return K(
                this,
                function (a, b, c) {
                  var d,
                    e,
                    f = {},
                    g = 0;
                  if (n.isArray(b)) {
                    for (d = Ca(a), e = b.length; e > g; g++)
                      f[b[g]] = n.css(a, b[g], !1, d);
                    return f;
                  }
                  return void 0 !== c ? n.style(a, b, c) : n.css(a, b);
                },
                a,
                b,
                arguments.length > 1
              );
            },
            show: function () {
              return Qa(this, !0);
            },
            hide: function () {
              return Qa(this);
            },
            toggle: function (a) {
              return "boolean" == typeof a
                ? a
                  ? this.show()
                  : this.hide()
                : this.each(function () {
                    V(this) ? n(this).show() : n(this).hide();
                  });
            },
          });
        function Ra(a, b, c, d, e) {
          return new Ra.prototype.init(a, b, c, d, e);
        }
        (n.Tween = Ra),
          (Ra.prototype = {
            constructor: Ra,
            init: function (a, b, c, d, e, f) {
              (this.elem = a),
                (this.prop = c),
                (this.easing = e || n.easing._default),
                (this.options = b),
                (this.start = this.now = this.cur()),
                (this.end = d),
                (this.unit = f || (n.cssNumber[c] ? "" : "px"));
            },
            cur: function () {
              var a = Ra.propHooks[this.prop];
              return a && a.get ? a.get(this) : Ra.propHooks._default.get(this);
            },
            run: function (a) {
              var b,
                c = Ra.propHooks[this.prop];
              return (
                this.options.duration
                  ? (this.pos = b =
                      n.easing[this.easing](
                        a,
                        this.options.duration * a,
                        0,
                        1,
                        this.options.duration
                      ))
                  : (this.pos = b = a),
                (this.now = (this.end - this.start) * b + this.start),
                this.options.step &&
                  this.options.step.call(this.elem, this.now, this),
                c && c.set ? c.set(this) : Ra.propHooks._default.set(this),
                this
              );
            },
          }),
          (Ra.prototype.init.prototype = Ra.prototype),
          (Ra.propHooks = {
            _default: {
              get: function (a) {
                var b;
                return 1 !== a.elem.nodeType ||
                  (null != a.elem[a.prop] && null == a.elem.style[a.prop])
                  ? a.elem[a.prop]
                  : ((b = n.css(a.elem, a.prop, "")),
                    b && "auto" !== b ? b : 0);
              },
              set: function (a) {
                n.fx.step[a.prop]
                  ? n.fx.step[a.prop](a)
                  : 1 !== a.elem.nodeType ||
                    (null == a.elem.style[n.cssProps[a.prop]] &&
                      !n.cssHooks[a.prop])
                  ? (a.elem[a.prop] = a.now)
                  : n.style(a.elem, a.prop, a.now + a.unit);
              },
            },
          }),
          (Ra.propHooks.scrollTop = Ra.propHooks.scrollLeft =
            {
              set: function (a) {
                a.elem.nodeType &&
                  a.elem.parentNode &&
                  (a.elem[a.prop] = a.now);
              },
            }),
          (n.easing = {
            linear: function (a) {
              return a;
            },
            swing: function (a) {
              return 0.5 - Math.cos(a * Math.PI) / 2;
            },
            _default: "swing",
          }),
          (n.fx = Ra.prototype.init),
          (n.fx.step = {});
        var Sa,
          Ta,
          Ua = /^(?:toggle|show|hide)$/,
          Va = /queueHooks$/;
        function Wa() {
          return (
            a.setTimeout(function () {
              Sa = void 0;
            }),
            (Sa = n.now())
          );
        }
        function Xa(a, b) {
          var c,
            d = 0,
            e = { height: a };
          for (b = b ? 1 : 0; 4 > d; d += 2 - b)
            (c = U[d]), (e["margin" + c] = e["padding" + c] = a);
          return b && (e.opacity = e.width = a), e;
        }
        function Ya(a, b, c) {
          for (
            var d,
              e = (_a.tweeners[b] || []).concat(_a.tweeners["*"]),
              f = 0,
              g = e.length;
            g > f;
            f++
          )
            if ((d = e[f].call(c, b, a))) return d;
        }
        function Za(a, b, c) {
          var d,
            e,
            f,
            g,
            h,
            i,
            j,
            k,
            l = this,
            m = {},
            o = a.style,
            p = a.nodeType && V(a),
            q = N.get(a, "fxshow");
          c.queue ||
            ((h = n._queueHooks(a, "fx")),
            null == h.unqueued &&
              ((h.unqueued = 0),
              (i = h.empty.fire),
              (h.empty.fire = function () {
                h.unqueued || i();
              })),
            h.unqueued++,
            l.always(function () {
              l.always(function () {
                h.unqueued--, n.queue(a, "fx").length || h.empty.fire();
              });
            })),
            1 === a.nodeType &&
              ("height" in b || "width" in b) &&
              ((c.overflow = [o.overflow, o.overflowX, o.overflowY]),
              (j = n.css(a, "display")),
              (k = "none" === j ? N.get(a, "olddisplay") || za(a.nodeName) : j),
              "inline" === k &&
                "none" === n.css(a, "float") &&
                (o.display = "inline-block")),
            c.overflow &&
              ((o.overflow = "hidden"),
              l.always(function () {
                (o.overflow = c.overflow[0]),
                  (o.overflowX = c.overflow[1]),
                  (o.overflowY = c.overflow[2]);
              }));
          for (d in b)
            if (((e = b[d]), Ua.exec(e))) {
              if (
                (delete b[d],
                (f = f || "toggle" === e),
                e === (p ? "hide" : "show"))
              ) {
                if ("show" !== e || !q || void 0 === q[d]) continue;
                p = !0;
              }
              m[d] = (q && q[d]) || n.style(a, d);
            } else j = void 0;
          if (n.isEmptyObject(m))
            "inline" === ("none" === j ? za(a.nodeName) : j) && (o.display = j);
          else {
            q
              ? "hidden" in q && (p = q.hidden)
              : (q = N.access(a, "fxshow", {})),
              f && (q.hidden = !p),
              p
                ? n(a).show()
                : l.done(function () {
                    n(a).hide();
                  }),
              l.done(function () {
                var b;
                N.remove(a, "fxshow");
                for (b in m) n.style(a, b, m[b]);
              });
            for (d in m)
              (g = Ya(p ? q[d] : 0, d, l)),
                d in q ||
                  ((q[d] = g.start),
                  p &&
                    ((g.end = g.start),
                    (g.start = "width" === d || "height" === d ? 1 : 0)));
          }
        }
        function $a(a, b) {
          var c, d, e, f, g;
          for (c in a)
            if (
              ((d = n.camelCase(c)),
              (e = b[d]),
              (f = a[c]),
              n.isArray(f) && ((e = f[1]), (f = a[c] = f[0])),
              c !== d && ((a[d] = f), delete a[c]),
              (g = n.cssHooks[d]),
              g && "expand" in g)
            ) {
              (f = g.expand(f)), delete a[d];
              for (c in f) c in a || ((a[c] = f[c]), (b[c] = e));
            } else b[d] = e;
        }
        function _a(a, b, c) {
          var d,
            e,
            f = 0,
            g = _a.prefilters.length,
            h = n.Deferred().always(function () {
              delete i.elem;
            }),
            i = function () {
              if (e) return !1;
              for (
                var b = Sa || Wa(),
                  c = Math.max(0, j.startTime + j.duration - b),
                  d = c / j.duration || 0,
                  f = 1 - d,
                  g = 0,
                  i = j.tweens.length;
                i > g;
                g++
              )
                j.tweens[g].run(f);
              return (
                h.notifyWith(a, [j, f, c]),
                1 > f && i ? c : (h.resolveWith(a, [j]), !1)
              );
            },
            j = h.promise({
              elem: a,
              props: n.extend({}, b),
              opts: n.extend(
                !0,
                { specialEasing: {}, easing: n.easing._default },
                c
              ),
              originalProperties: b,
              originalOptions: c,
              startTime: Sa || Wa(),
              duration: c.duration,
              tweens: [],
              createTween: function (b, c) {
                var d = n.Tween(
                  a,
                  j.opts,
                  b,
                  c,
                  j.opts.specialEasing[b] || j.opts.easing
                );
                return j.tweens.push(d), d;
              },
              stop: function (b) {
                var c = 0,
                  d = b ? j.tweens.length : 0;
                if (e) return this;
                for (e = !0; d > c; c++) j.tweens[c].run(1);
                return (
                  b
                    ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b]))
                    : h.rejectWith(a, [j, b]),
                  this
                );
              },
            }),
            k = j.props;
          for ($a(k, j.opts.specialEasing); g > f; f++)
            if ((d = _a.prefilters[f].call(j, a, k, j.opts)))
              return (
                n.isFunction(d.stop) &&
                  (n._queueHooks(j.elem, j.opts.queue).stop = n.proxy(
                    d.stop,
                    d
                  )),
                d
              );
          return (
            n.map(k, Ya, j),
            n.isFunction(j.opts.start) && j.opts.start.call(a, j),
            n.fx.timer(n.extend(i, { elem: a, anim: j, queue: j.opts.queue })),
            j
              .progress(j.opts.progress)
              .done(j.opts.done, j.opts.complete)
              .fail(j.opts.fail)
              .always(j.opts.always)
          );
        }
        (n.Animation = n.extend(_a, {
          tweeners: {
            "*": [
              function (a, b) {
                var c = this.createTween(a, b);
                return W(c.elem, a, T.exec(b), c), c;
              },
            ],
          },
          tweener: function (a, b) {
            n.isFunction(a) ? ((b = a), (a = ["*"])) : (a = a.match(G));
            for (var c, d = 0, e = a.length; e > d; d++)
              (c = a[d]),
                (_a.tweeners[c] = _a.tweeners[c] || []),
                _a.tweeners[c].unshift(b);
          },
          prefilters: [Za],
          prefilter: function (a, b) {
            b ? _a.prefilters.unshift(a) : _a.prefilters.push(a);
          },
        })),
          (n.speed = function (a, b, c) {
            var d =
              a && "object" == typeof a
                ? n.extend({}, a)
                : {
                    complete: c || (!c && b) || (n.isFunction(a) && a),
                    duration: a,
                    easing: (c && b) || (b && !n.isFunction(b) && b),
                  };
            return (
              (d.duration = n.fx.off
                ? 0
                : "number" == typeof d.duration
                ? d.duration
                : d.duration in n.fx.speeds
                ? n.fx.speeds[d.duration]
                : n.fx.speeds._default),
              (null != d.queue && d.queue !== !0) || (d.queue = "fx"),
              (d.old = d.complete),
              (d.complete = function () {
                n.isFunction(d.old) && d.old.call(this),
                  d.queue && n.dequeue(this, d.queue);
              }),
              d
            );
          }),
          n.fn.extend({
            fadeTo: function (a, b, c, d) {
              return this.filter(V)
                .css("opacity", 0)
                .show()
                .end()
                .animate({ opacity: b }, a, c, d);
            },
            animate: function (a, b, c, d) {
              var e = n.isEmptyObject(a),
                f = n.speed(b, c, d),
                g = function () {
                  var b = _a(this, n.extend({}, a), f);
                  (e || N.get(this, "finish")) && b.stop(!0);
                };
              return (
                (g.finish = g),
                e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
              );
            },
            stop: function (a, b, c) {
              var d = function (a) {
                var b = a.stop;
                delete a.stop, b(c);
              };
              return (
                "string" != typeof a && ((c = b), (b = a), (a = void 0)),
                b && a !== !1 && this.queue(a || "fx", []),
                this.each(function () {
                  var b = !0,
                    e = null != a && a + "queueHooks",
                    f = n.timers,
                    g = N.get(this);
                  if (e) g[e] && g[e].stop && d(g[e]);
                  else for (e in g) g[e] && g[e].stop && Va.test(e) && d(g[e]);
                  for (e = f.length; e--; )
                    f[e].elem !== this ||
                      (null != a && f[e].queue !== a) ||
                      (f[e].anim.stop(c), (b = !1), f.splice(e, 1));
                  (!b && c) || n.dequeue(this, a);
                })
              );
            },
            finish: function (a) {
              return (
                a !== !1 && (a = a || "fx"),
                this.each(function () {
                  var b,
                    c = N.get(this),
                    d = c[a + "queue"],
                    e = c[a + "queueHooks"],
                    f = n.timers,
                    g = d ? d.length : 0;
                  for (
                    c.finish = !0,
                      n.queue(this, a, []),
                      e && e.stop && e.stop.call(this, !0),
                      b = f.length;
                    b--;

                  )
                    f[b].elem === this &&
                      f[b].queue === a &&
                      (f[b].anim.stop(!0), f.splice(b, 1));
                  for (b = 0; g > b; b++)
                    d[b] && d[b].finish && d[b].finish.call(this);
                  delete c.finish;
                })
              );
            },
          }),
          n.each(["toggle", "show", "hide"], function (a, b) {
            var c = n.fn[b];
            n.fn[b] = function (a, d, e) {
              return null == a || "boolean" == typeof a
                ? c.apply(this, arguments)
                : this.animate(Xa(b, !0), a, d, e);
            };
          }),
          n.each(
            {
              slideDown: Xa("show"),
              slideUp: Xa("hide"),
              slideToggle: Xa("toggle"),
              fadeIn: { opacity: "show" },
              fadeOut: { opacity: "hide" },
              fadeToggle: { opacity: "toggle" },
            },
            function (a, b) {
              n.fn[a] = function (a, c, d) {
                return this.animate(b, a, c, d);
              };
            }
          ),
          (n.timers = []),
          (n.fx.tick = function () {
            var a,
              b = 0,
              c = n.timers;
            for (Sa = n.now(); b < c.length; b++)
              (a = c[b]), a() || c[b] !== a || c.splice(b--, 1);
            c.length || n.fx.stop(), (Sa = void 0);
          }),
          (n.fx.timer = function (a) {
            n.timers.push(a), a() ? n.fx.start() : n.timers.pop();
          }),
          (n.fx.interval = 13),
          (n.fx.start = function () {
            Ta || (Ta = a.setInterval(n.fx.tick, n.fx.interval));
          }),
          (n.fx.stop = function () {
            a.clearInterval(Ta), (Ta = null);
          }),
          (n.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
          (n.fn.delay = function (b, c) {
            return (
              (b = n.fx ? n.fx.speeds[b] || b : b),
              (c = c || "fx"),
              this.queue(c, function (c, d) {
                var e = a.setTimeout(c, b);
                d.stop = function () {
                  a.clearTimeout(e);
                };
              })
            );
          }),
          (function () {
            var a = d.createElement("input"),
              b = d.createElement("select"),
              c = b.appendChild(d.createElement("option"));
            (a.type = "checkbox"),
              (l.checkOn = "" !== a.value),
              (l.optSelected = c.selected),
              (b.disabled = !0),
              (l.optDisabled = !c.disabled),
              (a = d.createElement("input")),
              (a.value = "t"),
              (a.type = "radio"),
              (l.radioValue = "t" === a.value);
          })();
        var ab,
          bb = n.expr.attrHandle;
        n.fn.extend({
          attr: function (a, b) {
            return K(this, n.attr, a, b, arguments.length > 1);
          },
          removeAttr: function (a) {
            return this.each(function () {
              n.removeAttr(this, a);
            });
          },
        }),
          n.extend({
            attr: function (a, b, c) {
              var d,
                e,
                f = a.nodeType;
              if (3 !== f && 8 !== f && 2 !== f)
                return "undefined" == typeof a.getAttribute
                  ? n.prop(a, b, c)
                  : ((1 === f && n.isXMLDoc(a)) ||
                      ((b = b.toLowerCase()),
                      (e =
                        n.attrHooks[b] ||
                        (n.expr.match.bool.test(b) ? ab : void 0))),
                    void 0 !== c
                      ? null === c
                        ? void n.removeAttr(a, b)
                        : e && "set" in e && void 0 !== (d = e.set(a, c, b))
                        ? d
                        : (a.setAttribute(b, c + ""), c)
                      : e && "get" in e && null !== (d = e.get(a, b))
                      ? d
                      : ((d = n.find.attr(a, b)), null == d ? void 0 : d));
            },
            attrHooks: {
              type: {
                set: function (a, b) {
                  if (
                    !l.radioValue &&
                    "radio" === b &&
                    n.nodeName(a, "input")
                  ) {
                    var c = a.value;
                    return a.setAttribute("type", b), c && (a.value = c), b;
                  }
                },
              },
            },
            removeAttr: function (a, b) {
              var c,
                d,
                e = 0,
                f = b && b.match(G);
              if (f && 1 === a.nodeType)
                while ((c = f[e++]))
                  (d = n.propFix[c] || c),
                    n.expr.match.bool.test(c) && (a[d] = !1),
                    a.removeAttribute(c);
            },
          }),
          (ab = {
            set: function (a, b, c) {
              return b === !1 ? n.removeAttr(a, c) : a.setAttribute(c, c), c;
            },
          }),
          n.each(n.expr.match.bool.source.match(/\w+/g), function (a, b) {
            var c = bb[b] || n.find.attr;
            bb[b] = function (a, b, d) {
              var e, f;
              return (
                d ||
                  ((f = bb[b]),
                  (bb[b] = e),
                  (e = null != c(a, b, d) ? b.toLowerCase() : null),
                  (bb[b] = f)),
                e
              );
            };
          });
        var cb = /^(?:input|select|textarea|button)$/i,
          db = /^(?:a|area)$/i;
        n.fn.extend({
          prop: function (a, b) {
            return K(this, n.prop, a, b, arguments.length > 1);
          },
          removeProp: function (a) {
            return this.each(function () {
              delete this[n.propFix[a] || a];
            });
          },
        }),
          n.extend({
            prop: function (a, b, c) {
              var d,
                e,
                f = a.nodeType;
              if (3 !== f && 8 !== f && 2 !== f)
                return (
                  (1 === f && n.isXMLDoc(a)) ||
                    ((b = n.propFix[b] || b), (e = n.propHooks[b])),
                  void 0 !== c
                    ? e && "set" in e && void 0 !== (d = e.set(a, c, b))
                      ? d
                      : (a[b] = c)
                    : e && "get" in e && null !== (d = e.get(a, b))
                    ? d
                    : a[b]
                );
            },
            propHooks: {
              tabIndex: {
                get: function (a) {
                  var b = n.find.attr(a, "tabindex");
                  return b
                    ? parseInt(b, 10)
                    : cb.test(a.nodeName) || (db.test(a.nodeName) && a.href)
                    ? 0
                    : -1;
                },
              },
            },
            propFix: { for: "htmlFor", class: "className" },
          }),
          l.optSelected ||
            (n.propHooks.selected = {
              get: function (a) {
                var b = a.parentNode;
                return b && b.parentNode && b.parentNode.selectedIndex, null;
              },
              set: function (a) {
                var b = a.parentNode;
                b &&
                  (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex);
              },
            }),
          n.each(
            [
              "tabIndex",
              "readOnly",
              "maxLength",
              "cellSpacing",
              "cellPadding",
              "rowSpan",
              "colSpan",
              "useMap",
              "frameBorder",
              "contentEditable",
            ],
            function () {
              n.propFix[this.toLowerCase()] = this;
            }
          );
        var eb = /[\t\r\n\f]/g;
        function fb(a) {
          return (a.getAttribute && a.getAttribute("class")) || "";
        }
        n.fn.extend({
          addClass: function (a) {
            var b,
              c,
              d,
              e,
              f,
              g,
              h,
              i = 0;
            if (n.isFunction(a))
              return this.each(function (b) {
                n(this).addClass(a.call(this, b, fb(this)));
              });
            if ("string" == typeof a && a) {
              b = a.match(G) || [];
              while ((c = this[i++]))
                if (
                  ((e = fb(c)),
                  (d = 1 === c.nodeType && (" " + e + " ").replace(eb, " ")))
                ) {
                  g = 0;
                  while ((f = b[g++]))
                    d.indexOf(" " + f + " ") < 0 && (d += f + " ");
                  (h = n.trim(d)), e !== h && c.setAttribute("class", h);
                }
            }
            return this;
          },
          removeClass: function (a) {
            var b,
              c,
              d,
              e,
              f,
              g,
              h,
              i = 0;
            if (n.isFunction(a))
              return this.each(function (b) {
                n(this).removeClass(a.call(this, b, fb(this)));
              });
            if (!arguments.length) return this.attr("class", "");
            if ("string" == typeof a && a) {
              b = a.match(G) || [];
              while ((c = this[i++]))
                if (
                  ((e = fb(c)),
                  (d = 1 === c.nodeType && (" " + e + " ").replace(eb, " ")))
                ) {
                  g = 0;
                  while ((f = b[g++]))
                    while (d.indexOf(" " + f + " ") > -1)
                      d = d.replace(" " + f + " ", " ");
                  (h = n.trim(d)), e !== h && c.setAttribute("class", h);
                }
            }
            return this;
          },
          toggleClass: function (a, b) {
            var c = typeof a;
            return "boolean" == typeof b && "string" === c
              ? b
                ? this.addClass(a)
                : this.removeClass(a)
              : n.isFunction(a)
              ? this.each(function (c) {
                  n(this).toggleClass(a.call(this, c, fb(this), b), b);
                })
              : this.each(function () {
                  var b, d, e, f;
                  if ("string" === c) {
                    (d = 0), (e = n(this)), (f = a.match(G) || []);
                    while ((b = f[d++]))
                      e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
                  } else (void 0 !== a && "boolean" !== c) || ((b = fb(this)), b && N.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : N.get(this, "__className__") || ""));
                });
          },
          hasClass: function (a) {
            var b,
              c,
              d = 0;
            b = " " + a + " ";
            while ((c = this[d++]))
              if (
                1 === c.nodeType &&
                (" " + fb(c) + " ").replace(eb, " ").indexOf(b) > -1
              )
                return !0;
            return !1;
          },
        });
        var gb = /\r/g,
          hb = /[\x20\t\r\n\f]+/g;
        n.fn.extend({
          val: function (a) {
            var b,
              c,
              d,
              e = this[0];
            {
              if (arguments.length)
                return (
                  (d = n.isFunction(a)),
                  this.each(function (c) {
                    var e;
                    1 === this.nodeType &&
                      ((e = d ? a.call(this, c, n(this).val()) : a),
                      null == e
                        ? (e = "")
                        : "number" == typeof e
                        ? (e += "")
                        : n.isArray(e) &&
                          (e = n.map(e, function (a) {
                            return null == a ? "" : a + "";
                          })),
                      (b =
                        n.valHooks[this.type] ||
                        n.valHooks[this.nodeName.toLowerCase()]),
                      (b && "set" in b && void 0 !== b.set(this, e, "value")) ||
                        (this.value = e));
                  })
                );
              if (e)
                return (
                  (b =
                    n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()]),
                  b && "get" in b && void 0 !== (c = b.get(e, "value"))
                    ? c
                    : ((c = e.value),
                      "string" == typeof c
                        ? c.replace(gb, "")
                        : null == c
                        ? ""
                        : c)
                );
            }
          },
        }),
          n.extend({
            valHooks: {
              option: {
                get: function (a) {
                  var b = n.find.attr(a, "value");
                  return null != b ? b : n.trim(n.text(a)).replace(hb, " ");
                },
              },
              select: {
                get: function (a) {
                  for (
                    var b,
                      c,
                      d = a.options,
                      e = a.selectedIndex,
                      f = "select-one" === a.type || 0 > e,
                      g = f ? null : [],
                      h = f ? e + 1 : d.length,
                      i = 0 > e ? h : f ? e : 0;
                    h > i;
                    i++
                  )
                    if (
                      ((c = d[i]),
                      (c.selected || i === e) &&
                        (l.optDisabled
                          ? !c.disabled
                          : null === c.getAttribute("disabled")) &&
                        (!c.parentNode.disabled ||
                          !n.nodeName(c.parentNode, "optgroup")))
                    ) {
                      if (((b = n(c).val()), f)) return b;
                      g.push(b);
                    }
                  return g;
                },
                set: function (a, b) {
                  var c,
                    d,
                    e = a.options,
                    f = n.makeArray(b),
                    g = e.length;
                  while (g--)
                    (d = e[g]),
                      (d.selected =
                        n.inArray(n.valHooks.option.get(d), f) > -1) &&
                        (c = !0);
                  return c || (a.selectedIndex = -1), f;
                },
              },
            },
          }),
          n.each(["radio", "checkbox"], function () {
            (n.valHooks[this] = {
              set: function (a, b) {
                return n.isArray(b)
                  ? (a.checked = n.inArray(n(a).val(), b) > -1)
                  : void 0;
              },
            }),
              l.checkOn ||
                (n.valHooks[this].get = function (a) {
                  return null === a.getAttribute("value") ? "on" : a.value;
                });
          });
        var ib = /^(?:focusinfocus|focusoutblur)$/;
        n.extend(n.event, {
          trigger: function (b, c, e, f) {
            var g,
              h,
              i,
              j,
              l,
              m,
              o,
              p = [e || d],
              q = k.call(b, "type") ? b.type : b,
              r = k.call(b, "namespace") ? b.namespace.split(".") : [];
            if (
              ((h = i = e = e || d),
              3 !== e.nodeType &&
                8 !== e.nodeType &&
                !ib.test(q + n.event.triggered) &&
                (q.indexOf(".") > -1 &&
                  ((r = q.split(".")), (q = r.shift()), r.sort()),
                (l = q.indexOf(":") < 0 && "on" + q),
                (b = b[n.expando]
                  ? b
                  : new n.Event(q, "object" == typeof b && b)),
                (b.isTrigger = f ? 2 : 3),
                (b.namespace = r.join(".")),
                (b.rnamespace = b.namespace
                  ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)")
                  : null),
                (b.result = void 0),
                b.target || (b.target = e),
                (c = null == c ? [b] : n.makeArray(c, [b])),
                (o = n.event.special[q] || {}),
                f || !o.trigger || o.trigger.apply(e, c) !== !1))
            ) {
              if (!f && !o.noBubble && !n.isWindow(e)) {
                for (
                  j = o.delegateType || q, ib.test(j + q) || (h = h.parentNode);
                  h;
                  h = h.parentNode
                )
                  p.push(h), (i = h);
                i === (e.ownerDocument || d) &&
                  p.push(i.defaultView || i.parentWindow || a);
              }
              g = 0;
              while ((h = p[g++]) && !b.isPropagationStopped())
                (b.type = g > 1 ? j : o.bindType || q),
                  (m =
                    (N.get(h, "events") || {})[b.type] && N.get(h, "handle")),
                  m && m.apply(h, c),
                  (m = l && h[l]),
                  m &&
                    m.apply &&
                    L(h) &&
                    ((b.result = m.apply(h, c)),
                    b.result === !1 && b.preventDefault());
              return (
                (b.type = q),
                f ||
                  b.isDefaultPrevented() ||
                  (o._default && o._default.apply(p.pop(), c) !== !1) ||
                  !L(e) ||
                  (l &&
                    n.isFunction(e[q]) &&
                    !n.isWindow(e) &&
                    ((i = e[l]),
                    i && (e[l] = null),
                    (n.event.triggered = q),
                    e[q](),
                    (n.event.triggered = void 0),
                    i && (e[l] = i))),
                b.result
              );
            }
          },
          simulate: function (a, b, c) {
            var d = n.extend(new n.Event(), c, { type: a, isSimulated: !0 });
            n.event.trigger(d, null, b);
          },
        }),
          n.fn.extend({
            trigger: function (a, b) {
              return this.each(function () {
                n.event.trigger(a, b, this);
              });
            },
            triggerHandler: function (a, b) {
              var c = this[0];
              return c ? n.event.trigger(a, b, c, !0) : void 0;
            },
          }),
          n.each(
            "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(
              " "
            ),
            function (a, b) {
              n.fn[b] = function (a, c) {
                return arguments.length > 0
                  ? this.on(b, null, a, c)
                  : this.trigger(b);
              };
            }
          ),
          n.fn.extend({
            hover: function (a, b) {
              return this.mouseenter(a).mouseleave(b || a);
            },
          }),
          (l.focusin = "onfocusin" in a),
          l.focusin ||
            n.each({ focus: "focusin", blur: "focusout" }, function (a, b) {
              var c = function (a) {
                n.event.simulate(b, a.target, n.event.fix(a));
              };
              n.event.special[b] = {
                setup: function () {
                  var d = this.ownerDocument || this,
                    e = N.access(d, b);
                  e || d.addEventListener(a, c, !0),
                    N.access(d, b, (e || 0) + 1);
                },
                teardown: function () {
                  var d = this.ownerDocument || this,
                    e = N.access(d, b) - 1;
                  e
                    ? N.access(d, b, e)
                    : (d.removeEventListener(a, c, !0), N.remove(d, b));
                },
              };
            });
        var jb = a.location,
          kb = n.now(),
          lb = /\?/;
        (n.parseJSON = function (a) {
          return JSON.parse(a + "");
        }),
          (n.parseXML = function (b) {
            var c;
            if (!b || "string" != typeof b) return null;
            try {
              c = new a.DOMParser().parseFromString(b, "text/xml");
            } catch (d) {
              c = void 0;
            }
            return (
              (c && !c.getElementsByTagName("parsererror").length) ||
                n.error("Invalid XML: " + b),
              c
            );
          });
        var mb = /#.*$/,
          nb = /([?&])_=[^&]*/,
          ob = /^(.*?):[ \t]*([^\r\n]*)$/gm,
          pb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
          qb = /^(?:GET|HEAD)$/,
          rb = /^\/\//,
          sb = {},
          tb = {},
          ub = "*/".concat("*"),
          vb = d.createElement("a");
        vb.href = jb.href;
        function wb(a) {
          return function (b, c) {
            "string" != typeof b && ((c = b), (b = "*"));
            var d,
              e = 0,
              f = b.toLowerCase().match(G) || [];
            if (n.isFunction(c))
              while ((d = f[e++]))
                "+" === d[0]
                  ? ((d = d.slice(1) || "*"), (a[d] = a[d] || []).unshift(c))
                  : (a[d] = a[d] || []).push(c);
          };
        }
        function xb(a, b, c, d) {
          var e = {},
            f = a === tb;
          function g(h) {
            var i;
            return (
              (e[h] = !0),
              n.each(a[h] || [], function (a, h) {
                var j = h(b, c, d);
                return "string" != typeof j || f || e[j]
                  ? f
                    ? !(i = j)
                    : void 0
                  : (b.dataTypes.unshift(j), g(j), !1);
              }),
              i
            );
          }
          return g(b.dataTypes[0]) || (!e["*"] && g("*"));
        }
        function yb(a, b) {
          var c,
            d,
            e = n.ajaxSettings.flatOptions || {};
          for (c in b)
            void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
          return d && n.extend(!0, a, d), a;
        }
        function zb(a, b, c) {
          var d,
            e,
            f,
            g,
            h = a.contents,
            i = a.dataTypes;
          while ("*" === i[0])
            i.shift(),
              void 0 === d &&
                (d = a.mimeType || b.getResponseHeader("Content-Type"));
          if (d)
            for (e in h)
              if (h[e] && h[e].test(d)) {
                i.unshift(e);
                break;
              }
          if (i[0] in c) f = i[0];
          else {
            for (e in c) {
              if (!i[0] || a.converters[e + " " + i[0]]) {
                f = e;
                break;
              }
              g || (g = e);
            }
            f = f || g;
          }
          return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0;
        }
        function Ab(a, b, c, d) {
          var e,
            f,
            g,
            h,
            i,
            j = {},
            k = a.dataTypes.slice();
          if (k[1])
            for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
          f = k.shift();
          while (f)
            if (
              (a.responseFields[f] && (c[a.responseFields[f]] = b),
              !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)),
              (i = f),
              (f = k.shift()))
            )
              if ("*" === f) f = i;
              else if ("*" !== i && i !== f) {
                if (((g = j[i + " " + f] || j["* " + f]), !g))
                  for (e in j)
                    if (
                      ((h = e.split(" ")),
                      h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]]))
                    ) {
                      g === !0
                        ? (g = j[e])
                        : j[e] !== !0 && ((f = h[0]), k.unshift(h[1]));
                      break;
                    }
                if (g !== !0)
                  if (g && a["throws"]) b = g(b);
                  else
                    try {
                      b = g(b);
                    } catch (l) {
                      return {
                        state: "parsererror",
                        error: g ? l : "No conversion from " + i + " to " + f,
                      };
                    }
              }
          return { state: "success", data: b };
        }
        n.extend({
          active: 0,
          lastModified: {},
          etag: {},
          ajaxSettings: {
            url: jb.href,
            type: "GET",
            isLocal: pb.test(jb.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
              "*": ub,
              text: "text/plain",
              html: "text/html",
              xml: "application/xml, text/xml",
              json: "application/json, text/javascript",
            },
            contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ },
            responseFields: {
              xml: "responseXML",
              text: "responseText",
              json: "responseJSON",
            },
            converters: {
              "* text": String,
              "text html": !0,
              "text json": n.parseJSON,
              "text xml": n.parseXML,
            },
            flatOptions: { url: !0, context: !0 },
          },
          ajaxSetup: function (a, b) {
            return b ? yb(yb(a, n.ajaxSettings), b) : yb(n.ajaxSettings, a);
          },
          ajaxPrefilter: wb(sb),
          ajaxTransport: wb(tb),
          ajax: function (b, c) {
            "object" == typeof b && ((c = b), (b = void 0)), (c = c || {});
            var e,
              f,
              g,
              h,
              i,
              j,
              k,
              l,
              m = n.ajaxSetup({}, c),
              o = m.context || m,
              p = m.context && (o.nodeType || o.jquery) ? n(o) : n.event,
              q = n.Deferred(),
              r = n.Callbacks("once memory"),
              s = m.statusCode || {},
              t = {},
              u = {},
              v = 0,
              w = "canceled",
              x = {
                readyState: 0,
                getResponseHeader: function (a) {
                  var b;
                  if (2 === v) {
                    if (!h) {
                      h = {};
                      while ((b = ob.exec(g))) h[b[1].toLowerCase()] = b[2];
                    }
                    b = h[a.toLowerCase()];
                  }
                  return null == b ? null : b;
                },
                getAllResponseHeaders: function () {
                  return 2 === v ? g : null;
                },
                setRequestHeader: function (a, b) {
                  var c = a.toLowerCase();
                  return v || ((a = u[c] = u[c] || a), (t[a] = b)), this;
                },
                overrideMimeType: function (a) {
                  return v || (m.mimeType = a), this;
                },
                statusCode: function (a) {
                  var b;
                  if (a)
                    if (2 > v) for (b in a) s[b] = [s[b], a[b]];
                    else x.always(a[x.status]);
                  return this;
                },
                abort: function (a) {
                  var b = a || w;
                  return e && e.abort(b), z(0, b), this;
                },
              };
            if (
              ((q.promise(x).complete = r.add),
              (x.success = x.done),
              (x.error = x.fail),
              (m.url = ((b || m.url || jb.href) + "")
                .replace(mb, "")
                .replace(rb, jb.protocol + "//")),
              (m.type = c.method || c.type || m.method || m.type),
              (m.dataTypes = n
                .trim(m.dataType || "*")
                .toLowerCase()
                .match(G) || [""]),
              null == m.crossDomain)
            ) {
              j = d.createElement("a");
              try {
                (j.href = m.url),
                  (j.href = j.href),
                  (m.crossDomain =
                    vb.protocol + "//" + vb.host != j.protocol + "//" + j.host);
              } catch (y) {
                m.crossDomain = !0;
              }
            }
            if (
              (m.data &&
                m.processData &&
                "string" != typeof m.data &&
                (m.data = n.param(m.data, m.traditional)),
              xb(sb, m, c, x),
              2 === v)
            )
              return x;
            (k = n.event && m.global),
              k && 0 === n.active++ && n.event.trigger("ajaxStart"),
              (m.type = m.type.toUpperCase()),
              (m.hasContent = !qb.test(m.type)),
              (f = m.url),
              m.hasContent ||
                (m.data &&
                  ((f = m.url += (lb.test(f) ? "&" : "?") + m.data),
                  delete m.data),
                m.cache === !1 &&
                  (m.url = nb.test(f)
                    ? f.replace(nb, "$1_=" + kb++)
                    : f + (lb.test(f) ? "&" : "?") + "_=" + kb++)),
              m.ifModified &&
                (n.lastModified[f] &&
                  x.setRequestHeader("If-Modified-Since", n.lastModified[f]),
                n.etag[f] && x.setRequestHeader("If-None-Match", n.etag[f])),
              ((m.data && m.hasContent && m.contentType !== !1) ||
                c.contentType) &&
                x.setRequestHeader("Content-Type", m.contentType),
              x.setRequestHeader(
                "Accept",
                m.dataTypes[0] && m.accepts[m.dataTypes[0]]
                  ? m.accepts[m.dataTypes[0]] +
                      ("*" !== m.dataTypes[0] ? ", " + ub + "; q=0.01" : "")
                  : m.accepts["*"]
              );
            for (l in m.headers) x.setRequestHeader(l, m.headers[l]);
            if (m.beforeSend && (m.beforeSend.call(o, x, m) === !1 || 2 === v))
              return x.abort();
            w = "abort";
            for (l in { success: 1, error: 1, complete: 1 }) x[l](m[l]);
            if ((e = xb(tb, m, c, x))) {
              if (
                ((x.readyState = 1),
                k && p.trigger("ajaxSend", [x, m]),
                2 === v)
              )
                return x;
              m.async &&
                m.timeout > 0 &&
                (i = a.setTimeout(function () {
                  x.abort("timeout");
                }, m.timeout));
              try {
                (v = 1), e.send(t, z);
              } catch (y) {
                if (!(2 > v)) throw y;
                z(-1, y);
              }
            } else z(-1, "No Transport");
            function z(b, c, d, h) {
              var j,
                l,
                t,
                u,
                w,
                y = c;
              2 !== v &&
                ((v = 2),
                i && a.clearTimeout(i),
                (e = void 0),
                (g = h || ""),
                (x.readyState = b > 0 ? 4 : 0),
                (j = (b >= 200 && 300 > b) || 304 === b),
                d && (u = zb(m, x, d)),
                (u = Ab(m, u, x, j)),
                j
                  ? (m.ifModified &&
                      ((w = x.getResponseHeader("Last-Modified")),
                      w && (n.lastModified[f] = w),
                      (w = x.getResponseHeader("etag")),
                      w && (n.etag[f] = w)),
                    204 === b || "HEAD" === m.type
                      ? (y = "nocontent")
                      : 304 === b
                      ? (y = "notmodified")
                      : ((y = u.state), (l = u.data), (t = u.error), (j = !t)))
                  : ((t = y), (!b && y) || ((y = "error"), 0 > b && (b = 0))),
                (x.status = b),
                (x.statusText = (c || y) + ""),
                j ? q.resolveWith(o, [l, y, x]) : q.rejectWith(o, [x, y, t]),
                x.statusCode(s),
                (s = void 0),
                k &&
                  p.trigger(j ? "ajaxSuccess" : "ajaxError", [x, m, j ? l : t]),
                r.fireWith(o, [x, y]),
                k &&
                  (p.trigger("ajaxComplete", [x, m]),
                  --n.active || n.event.trigger("ajaxStop")));
            }
            return x;
          },
          getJSON: function (a, b, c) {
            return n.get(a, b, c, "json");
          },
          getScript: function (a, b) {
            return n.get(a, void 0, b, "script");
          },
        }),
          n.each(["get", "post"], function (a, b) {
            n[b] = function (a, c, d, e) {
              return (
                n.isFunction(c) && ((e = e || d), (d = c), (c = void 0)),
                n.ajax(
                  n.extend(
                    { url: a, type: b, dataType: e, data: c, success: d },
                    n.isPlainObject(a) && a
                  )
                )
              );
            };
          }),
          (n._evalUrl = function (a) {
            return n.ajax({
              url: a,
              type: "GET",
              dataType: "script",
              async: !1,
              global: !1,
              throws: !0,
            });
          }),
          n.fn.extend({
            wrapAll: function (a) {
              var b;
              return n.isFunction(a)
                ? this.each(function (b) {
                    n(this).wrapAll(a.call(this, b));
                  })
                : (this[0] &&
                    ((b = n(a, this[0].ownerDocument).eq(0).clone(!0)),
                    this[0].parentNode && b.insertBefore(this[0]),
                    b
                      .map(function () {
                        var a = this;
                        while (a.firstElementChild) a = a.firstElementChild;
                        return a;
                      })
                      .append(this)),
                  this);
            },
            wrapInner: function (a) {
              return n.isFunction(a)
                ? this.each(function (b) {
                    n(this).wrapInner(a.call(this, b));
                  })
                : this.each(function () {
                    var b = n(this),
                      c = b.contents();
                    c.length ? c.wrapAll(a) : b.append(a);
                  });
            },
            wrap: function (a) {
              var b = n.isFunction(a);
              return this.each(function (c) {
                n(this).wrapAll(b ? a.call(this, c) : a);
              });
            },
            unwrap: function () {
              return this.parent()
                .each(function () {
                  n.nodeName(this, "body") ||
                    n(this).replaceWith(this.childNodes);
                })
                .end();
            },
          }),
          (n.expr.filters.hidden = function (a) {
            return !n.expr.filters.visible(a);
          }),
          (n.expr.filters.visible = function (a) {
            return (
              a.offsetWidth > 0 ||
              a.offsetHeight > 0 ||
              a.getClientRects().length > 0
            );
          });
        var Bb = /%20/g,
          Cb = /\[\]$/,
          Db = /\r?\n/g,
          Eb = /^(?:submit|button|image|reset|file)$/i,
          Fb = /^(?:input|select|textarea|keygen)/i;
        function Gb(a, b, c, d) {
          var e;
          if (n.isArray(b))
            n.each(b, function (b, e) {
              c || Cb.test(a)
                ? d(a, e)
                : Gb(
                    a +
                      "[" +
                      ("object" == typeof e && null != e ? b : "") +
                      "]",
                    e,
                    c,
                    d
                  );
            });
          else if (c || "object" !== n.type(b)) d(a, b);
          else for (e in b) Gb(a + "[" + e + "]", b[e], c, d);
        }
        (n.param = function (a, b) {
          var c,
            d = [],
            e = function (a, b) {
              (b = n.isFunction(b) ? b() : null == b ? "" : b),
                (d[d.length] =
                  encodeURIComponent(a) + "=" + encodeURIComponent(b));
            };
          if (
            (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional),
            n.isArray(a) || (a.jquery && !n.isPlainObject(a)))
          )
            n.each(a, function () {
              e(this.name, this.value);
            });
          else for (c in a) Gb(c, a[c], b, e);
          return d.join("&").replace(Bb, "+");
        }),
          n.fn.extend({
            serialize: function () {
              return n.param(this.serializeArray());
            },
            serializeArray: function () {
              return this.map(function () {
                var a = n.prop(this, "elements");
                return a ? n.makeArray(a) : this;
              })
                .filter(function () {
                  var a = this.type;
                  return (
                    this.name &&
                    !n(this).is(":disabled") &&
                    Fb.test(this.nodeName) &&
                    !Eb.test(a) &&
                    (this.checked || !X.test(a))
                  );
                })
                .map(function (a, b) {
                  var c = n(this).val();
                  return null == c
                    ? null
                    : n.isArray(c)
                    ? n.map(c, function (a) {
                        return { name: b.name, value: a.replace(Db, "\r\n") };
                      })
                    : { name: b.name, value: c.replace(Db, "\r\n") };
                })
                .get();
            },
          }),
          (n.ajaxSettings.xhr = function () {
            try {
              return new a.XMLHttpRequest();
            } catch (b) {}
          });
        var Hb = { 0: 200, 1223: 204 },
          Ib = n.ajaxSettings.xhr();
        (l.cors = !!Ib && "withCredentials" in Ib),
          (l.ajax = Ib = !!Ib),
          n.ajaxTransport(function (b) {
            var c, d;
            return l.cors || (Ib && !b.crossDomain)
              ? {
                  send: function (e, f) {
                    var g,
                      h = b.xhr();
                    if (
                      (h.open(b.type, b.url, b.async, b.username, b.password),
                      b.xhrFields)
                    )
                      for (g in b.xhrFields) h[g] = b.xhrFields[g];
                    b.mimeType &&
                      h.overrideMimeType &&
                      h.overrideMimeType(b.mimeType),
                      b.crossDomain ||
                        e["X-Requested-With"] ||
                        (e["X-Requested-With"] = "XMLHttpRequest");
                    for (g in e) h.setRequestHeader(g, e[g]);
                    (c = function (a) {
                      return function () {
                        c &&
                          ((c =
                            d =
                            h.onload =
                            h.onerror =
                            h.onabort =
                            h.onreadystatechange =
                              null),
                          "abort" === a
                            ? h.abort()
                            : "error" === a
                            ? "number" != typeof h.status
                              ? f(0, "error")
                              : f(h.status, h.statusText)
                            : f(
                                Hb[h.status] || h.status,
                                h.statusText,
                                "text" !== (h.responseType || "text") ||
                                  "string" != typeof h.responseText
                                  ? { binary: h.response }
                                  : { text: h.responseText },
                                h.getAllResponseHeaders()
                              ));
                      };
                    }),
                      (h.onload = c()),
                      (d = h.onerror = c("error")),
                      void 0 !== h.onabort
                        ? (h.onabort = d)
                        : (h.onreadystatechange = function () {
                            4 === h.readyState &&
                              a.setTimeout(function () {
                                c && d();
                              });
                          }),
                      (c = c("abort"));
                    try {
                      h.send((b.hasContent && b.data) || null);
                    } catch (i) {
                      if (c) throw i;
                    }
                  },
                  abort: function () {
                    c && c();
                  },
                }
              : void 0;
          }),
          n.ajaxSetup({
            accepts: {
              script:
                "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
            },
            contents: { script: /\b(?:java|ecma)script\b/ },
            converters: {
              "text script": function (a) {
                return n.globalEval(a), a;
              },
            },
          }),
          n.ajaxPrefilter("script", function (a) {
            void 0 === a.cache && (a.cache = !1),
              a.crossDomain && (a.type = "GET");
          }),
          n.ajaxTransport("script", function (a) {
            if (a.crossDomain) {
              var b, c;
              return {
                send: function (e, f) {
                  (b = n("<script>")
                    .prop({ charset: a.scriptCharset, src: a.url })
                    .on(
                      "load error",
                      (c = function (a) {
                        b.remove(),
                          (c = null),
                          a && f("error" === a.type ? 404 : 200, a.type);
                      })
                    )),
                    d.head.appendChild(b[0]);
                },
                abort: function () {
                  c && c();
                },
              };
            }
          });
        var Jb = [],
          Kb = /(=)\?(?=&|$)|\?\?/;
        n.ajaxSetup({
          jsonp: "callback",
          jsonpCallback: function () {
            var a = Jb.pop() || n.expando + "_" + kb++;
            return (this[a] = !0), a;
          },
        }),
          n.ajaxPrefilter("json jsonp", function (b, c, d) {
            var e,
              f,
              g,
              h =
                b.jsonp !== !1 &&
                (Kb.test(b.url)
                  ? "url"
                  : "string" == typeof b.data &&
                    0 ===
                      (b.contentType || "").indexOf(
                        "application/x-www-form-urlencoded"
                      ) &&
                    Kb.test(b.data) &&
                    "data");
            return h || "jsonp" === b.dataTypes[0]
              ? ((e = b.jsonpCallback =
                  n.isFunction(b.jsonpCallback)
                    ? b.jsonpCallback()
                    : b.jsonpCallback),
                h
                  ? (b[h] = b[h].replace(Kb, "$1" + e))
                  : b.jsonp !== !1 &&
                    (b.url += (lb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e),
                (b.converters["script json"] = function () {
                  return g || n.error(e + " was not called"), g[0];
                }),
                (b.dataTypes[0] = "json"),
                (f = a[e]),
                (a[e] = function () {
                  g = arguments;
                }),
                d.always(function () {
                  void 0 === f ? n(a).removeProp(e) : (a[e] = f),
                    b[e] && ((b.jsonpCallback = c.jsonpCallback), Jb.push(e)),
                    g && n.isFunction(f) && f(g[0]),
                    (g = f = void 0);
                }),
                "script")
              : void 0;
          }),
          (n.parseHTML = function (a, b, c) {
            if (!a || "string" != typeof a) return null;
            "boolean" == typeof b && ((c = b), (b = !1)), (b = b || d);
            var e = x.exec(a),
              f = !c && [];
            return e
              ? [b.createElement(e[1])]
              : ((e = ca([a], b, f)),
                f && f.length && n(f).remove(),
                n.merge([], e.childNodes));
          });
        var Lb = n.fn.load;
        (n.fn.load = function (a, b, c) {
          if ("string" != typeof a && Lb) return Lb.apply(this, arguments);
          var d,
            e,
            f,
            g = this,
            h = a.indexOf(" ");
          return (
            h > -1 && ((d = n.trim(a.slice(h))), (a = a.slice(0, h))),
            n.isFunction(b)
              ? ((c = b), (b = void 0))
              : b && "object" == typeof b && (e = "POST"),
            g.length > 0 &&
              n
                .ajax({ url: a, type: e || "GET", dataType: "html", data: b })
                .done(function (a) {
                  (f = arguments),
                    g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a);
                })
                .always(
                  c &&
                    function (a, b) {
                      g.each(function () {
                        c.apply(this, f || [a.responseText, b, a]);
                      });
                    }
                ),
            this
          );
        }),
          n.each(
            [
              "ajaxStart",
              "ajaxStop",
              "ajaxComplete",
              "ajaxError",
              "ajaxSuccess",
              "ajaxSend",
            ],
            function (a, b) {
              n.fn[b] = function (a) {
                return this.on(b, a);
              };
            }
          ),
          (n.expr.filters.animated = function (a) {
            return n.grep(n.timers, function (b) {
              return a === b.elem;
            }).length;
          });
        function Mb(a) {
          return n.isWindow(a) ? a : 9 === a.nodeType && a.defaultView;
        }
        (n.offset = {
          setOffset: function (a, b, c) {
            var d,
              e,
              f,
              g,
              h,
              i,
              j,
              k = n.css(a, "position"),
              l = n(a),
              m = {};
            "static" === k && (a.style.position = "relative"),
              (h = l.offset()),
              (f = n.css(a, "top")),
              (i = n.css(a, "left")),
              (j =
                ("absolute" === k || "fixed" === k) &&
                (f + i).indexOf("auto") > -1),
              j
                ? ((d = l.position()), (g = d.top), (e = d.left))
                : ((g = parseFloat(f) || 0), (e = parseFloat(i) || 0)),
              n.isFunction(b) && (b = b.call(a, c, n.extend({}, h))),
              null != b.top && (m.top = b.top - h.top + g),
              null != b.left && (m.left = b.left - h.left + e),
              "using" in b ? b.using.call(a, m) : l.css(m);
          },
        }),
          n.fn.extend({
            offset: function (a) {
              if (arguments.length)
                return void 0 === a
                  ? this
                  : this.each(function (b) {
                      n.offset.setOffset(this, a, b);
                    });
              var b,
                c,
                d = this[0],
                e = { top: 0, left: 0 },
                f = d && d.ownerDocument;
              if (f)
                return (
                  (b = f.documentElement),
                  n.contains(b, d)
                    ? ((e = d.getBoundingClientRect()),
                      (c = Mb(f)),
                      {
                        top: e.top + c.pageYOffset - b.clientTop,
                        left: e.left + c.pageXOffset - b.clientLeft,
                      })
                    : e
                );
            },
            position: function () {
              if (this[0]) {
                var a,
                  b,
                  c = this[0],
                  d = { top: 0, left: 0 };
                return (
                  "fixed" === n.css(c, "position")
                    ? (b = c.getBoundingClientRect())
                    : ((a = this.offsetParent()),
                      (b = this.offset()),
                      n.nodeName(a[0], "html") || (d = a.offset()),
                      (d.top += n.css(a[0], "borderTopWidth", !0)),
                      (d.left += n.css(a[0], "borderLeftWidth", !0))),
                  {
                    top: b.top - d.top - n.css(c, "marginTop", !0),
                    left: b.left - d.left - n.css(c, "marginLeft", !0),
                  }
                );
              }
            },
            offsetParent: function () {
              return this.map(function () {
                var a = this.offsetParent;
                while (a && "static" === n.css(a, "position"))
                  a = a.offsetParent;
                return a || Ea;
              });
            },
          }),
          n.each(
            { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" },
            function (a, b) {
              var c = "pageYOffset" === b;
              n.fn[a] = function (d) {
                return K(
                  this,
                  function (a, d, e) {
                    var f = Mb(a);
                    return void 0 === e
                      ? f
                        ? f[b]
                        : a[d]
                      : void (f
                          ? f.scrollTo(
                              c ? f.pageXOffset : e,
                              c ? e : f.pageYOffset
                            )
                          : (a[d] = e));
                  },
                  a,
                  d,
                  arguments.length
                );
              };
            }
          ),
          n.each(["top", "left"], function (a, b) {
            n.cssHooks[b] = Ga(l.pixelPosition, function (a, c) {
              return c
                ? ((c = Fa(a, b)), Ba.test(c) ? n(a).position()[b] + "px" : c)
                : void 0;
            });
          }),
          n.each({ Height: "height", Width: "width" }, function (a, b) {
            n.each(
              { padding: "inner" + a, content: b, "": "outer" + a },
              function (c, d) {
                n.fn[d] = function (d, e) {
                  var f = arguments.length && (c || "boolean" != typeof d),
                    g = c || (d === !0 || e === !0 ? "margin" : "border");
                  return K(
                    this,
                    function (b, c, d) {
                      var e;
                      return n.isWindow(b)
                        ? b.document.documentElement["client" + a]
                        : 9 === b.nodeType
                        ? ((e = b.documentElement),
                          Math.max(
                            b.body["scroll" + a],
                            e["scroll" + a],
                            b.body["offset" + a],
                            e["offset" + a],
                            e["client" + a]
                          ))
                        : void 0 === d
                        ? n.css(b, c, g)
                        : n.style(b, c, d, g);
                    },
                    b,
                    f ? d : void 0,
                    f,
                    null
                  );
                };
              }
            );
          }),
          n.fn.extend({
            bind: function (a, b, c) {
              return this.on(a, null, b, c);
            },
            unbind: function (a, b) {
              return this.off(a, null, b);
            },
            delegate: function (a, b, c, d) {
              return this.on(b, a, c, d);
            },
            undelegate: function (a, b, c) {
              return 1 === arguments.length
                ? this.off(a, "**")
                : this.off(b, a || "**", c);
            },
            size: function () {
              return this.length;
            },
          }),
          (n.fn.andSelf = n.fn.addBack),
          "function" == typeof define &&
            define.amd &&
            define("jquery", [], function () {
              return n;
            });
        var Nb = a.jQuery,
          Ob = a.$;
        return (
          (n.noConflict = function (b) {
            return (
              a.$ === n && (a.$ = Ob), b && a.jQuery === n && (a.jQuery = Nb), n
            );
          }),
          b || (a.jQuery = a.$ = n),
          n
        );
      });
    </script>
    <style>
      /*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
      html {
        font-family: sans-serif;
        -ms-text-size-adjust: 100%;
        -webkit-text-size-adjust: 100%;
      }
      body {
        margin: 0;
      }
      article,
      aside,
      details,
      figcaption,
      figure,
      footer,
      header,
      main,
      menu,
      nav,
      section,
      summary {
        display: block;
      }
      audio,
      canvas,
      progress,
      video {
        display: inline-block;
      }
      audio:not([controls]) {
        display: none;
        height: 0;
      }
      progress {
        vertical-align: baseline;
      }
      template,
      [hidden] {
        display: none;
      }
      a {
        background-color: transparent;
        -webkit-text-decoration-skip: objects;
      }
      a:active,
      a:hover {
        outline-width: 0;
      }
      abbr[title] {
        border-bottom: 0;
        text-decoration: underline;
        text-decoration: underline dotted;
      }
      b,
      strong {
        font-weight: inherit;
      }
      b,
      strong {
        font-weight: bolder;
      }
      dfn {
        font-style: italic;
      }
      h1 {
        font-size: 2em;
        margin: 0.67em 0;
      }
      mark {
        background-color: #ff0;
        color: #000;
      }
      small {
        font-size: 80%;
      }
      sub,
      sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align: baseline;
      }
      sub {
        bottom: -0.25em;
      }
      sup {
        top: -0.5em;
      }
      img {
        border-style: none;
      }
      svg:not(:root) {
        overflow: hidden;
      }
      code,
      kbd,
      pre,
      samp {
        font-family: monospace, monospace;
        font-size: 1em;
      }
      figure {
        margin: 1em 40px;
      }
      hr {
        box-sizing: content-box;
        height: 0;
        overflow: visible;
      }
      button,
      input,
      select,
      textarea {
        font: inherit;
        margin: 0;
      }
      optgroup {
        font-weight: bold;
      }
      button,
      input {
        overflow: visible;
      }
      button,
      select {
        text-transform: none;
      }
      button,
      html [type="button"],
      [type="reset"],
      [type="submit"] {
        -webkit-appearance: button;
      }
      button::-moz-focus-inner,
      [type="button"]::-moz-focus-inner,
      [type="reset"]::-moz-focus-inner,
      [type="submit"]::-moz-focus-inner {
        border-style: none;
        padding: 0;
      }
      button:-moz-focusring,
      [type="button"]:-moz-focusring,
      [type="reset"]:-moz-focusring,
      [type="submit"]:-moz-focusring {
        outline: 1px dotted ButtonText;
      }
      fieldset {
        border: 1px solid silver;
        margin: 0 2px;
        padding: 0.35em 0.625em 0.75em;
      }
      legend {
        box-sizing: border-box;
        color: inherit;
        display: table;
        max-width: 100%;
        padding: 0;
        white-space: normal;
      }
      textarea {
        overflow: auto;
      }
      [type="checkbox"],
      [type="radio"] {
        box-sizing: border-box;
        padding: 0;
      }
      [type="number"]::-webkit-inner-spin-button,
      [type="number"]::-webkit-outer-spin-button {
        height: auto;
      }
      [type="search"] {
        -webkit-appearance: textfield;
        outline-offset: -2px;
      }
      [type="search"]::-webkit-search-cancel-button,
      [type="search"]::-webkit-search-decoration {
        -webkit-appearance: none;
      }
      ::-webkit-input-placeholder {
        color: inherit;
        opacity: 0.54;
      }
      ::-webkit-file-upload-button {
        -webkit-appearance: button;
        font: inherit;
      }
      * {
        box-sizing: border-box;
      }
      ::-webkit-scrollbar {
        width: 8px;
        height: 8px;
        background: #20212300;
        border-radius: 4px;
      }
      ::-webkit-scrollbar-thumb {
        border: 1px solid rgba(105, 99, 99, 0.2);
        background-color: rgba(15, 15, 15, 0.3);
        border-radius: 4px;
      }
      ::-webkit-scrollbar-corner,
      ::-webkit-resizer {
        background: #20212300;
      }
      html {
        width: 100vw;
        height: 100vh;
        overflow: hidden;
        background: #181818;
      }
      body {
        -webkit-user-select: none;
        width: 100vw;
        height: 100vh;
        min-width: 1024px;
        font-family: HelveticaNeue, Helvetica, Arial, sans-serif;
        font-size: 12px;
        color: #989a9c;
        background: #191919;
        letter-spacing: 0;
        overflow: hidden;
      }
      header {
        position: fixed;
        width: 430px;
        bottom: 0px;
        left: 50%;
        height: 40px;
        display: flex;
        align-items: center;
        z-index: 215;
        transform: translateX(-50%);
      }
      header:hover .header-center {
        opacity: 1;
        bottom: 0px;
      }
      .header-right {
        height: 45px;
        line-height: 45px;
      }
      header .header-center {
        transition: all 0.5s;
        opacity: 0.6;
        position: fixed;
        bottom: 0px;
        left: 50%;
        transform: translateX(-50%);
        height: 40px;
        background: #0f0f0f;
        border-radius: 6px 6px 0;
        overflow: hidden;
      }
      header .header-center {
        display: flex;
        flex: 1;
        background: #232527;
      }
      header .header-center .zoom-widget {
        display: flex;
        align-items: center;
        padding: 0 15px;
      }
      header .header-center .flow-mode,
      header .header-center .show-notes {
        line-height: 20px;
        display: flex;
        align-items: center;
        white-space: nowrap;
        padding: 0 15px;
      }
      header .header-center .flow-mode label,
      header .header-center .show-notes label {
        cursor: pointer;
      }
      header .header-center .flow-mode .slidebox,
      header .header-center .show-notes .slidebox {
        margin-left: 10px;
      }
      header .header-left {
        display: flex;
      }
      .zoom-widget {
        display: flex;
      }
      .zoom-widget button {
        position: relative;
        display: block;
        width: 20px;
        height: 20px;
        border-radius: 10px;
        border: 0;
        background: none;
        cursor: pointer;
        outline: none;
      }
      .zoom-widget button:after,
      .zoom-widget button:before {
        position: absolute;
        top: 9px;
        left: 5px;
        content: "";
        display: block;
        width: 10px;
        height: 2px;
        background: #f5f5f4;
      }
      .zoom-widget button:after {
        top: 5px;
        left: 9px;
        width: 2px;
        height: 10px;
      }
      .zoom-widget button:disabled {
        background: #222;
        cursor: default;
      }
      .zoom-widget button:disabled:after,
      .zoom-widget button:disabled:before {
        background: #606264;
      }
      .zoom-widget button.zoom-in:after {
        display: none;
      }
      .zoom-widget .zoom-text {
        display: block;
        text-align: center;
        line-height: 20px;
        flex: 1;
        height: 20px;
        width: 55px;
        cursor: pointer;
      }
      .unit-box {
        height: inherit;
      }
      .unit-box:focus {
        height: auto;
        outline: 0;
      }
      .unit-box h3,
      .unit-box p {
        position: relative;
        margin: 0; /* padding: 20px 20px 20px 54px; */
        padding-left: 45px;
        display: block;
        height: 45px;
        line-height: 45px;
        font-size: 12px;
        font-weight: 400;
        cursor: pointer;
        background-image: linear-gradient(
          90deg,
          rgba(0, 4, 9, 0.32) 0,
          rgba(0, 2, 4, 0) 100%
        );
      }
      .unit-box h3,
      .unit-box:focus p {
        display: none;
      }
      .unit-box h3:before,
      .unit-box p:before {
        position: absolute;
        top: 10px;
        left: 18px;
        content: "";
        display: block;
        width: 24px;
        height: 24px;
        background: url()
          no-repeat;
        background-size: 24px 24px;
      }
      .unit-box ul {
        position: absolute;
        margin: 0 0 0 240px;
        padding: 0;
        list-style: none;
        background: #0f0f0f;
        width: 240px;
        height: calc(100vh - 45px);
        overflow: auto;
        display: block;
        transition: all 0.15s ease;
        z-index: 4;
      }
      .unit-box:focus h3 {
        color: #afafaf;
        display: block;
        padding-left: 45px;
        height: 45px;
        line-height: 45px;
        font-size: 12px;
      }
      .unit-box:focus ul {
        margin: 0;
      }
      .unit-box .sub-title,
      .unit-box label {
        display: flex;
        padding: 10px 20px;
      }
      .unit-box label {
        cursor: pointer;
      }
      .unit-box li:hover label {
        color: #fff;
      }
      .page-list label span,
      .unit-box label span {
        flex: 1;
        height: 30px;
        line-height: 30px;
      }
      .page-list input,
      .unit-box input {
        position: absolute;
        visibility: hidden;
      }
      .page-list span:before,
      .unit-box span:before {
        float: right;
        display: block;
        content: "";
        width: 16px;
        height: 16px;
        margin-top: 10px;
      }
      .page-list input:checked + span:before,
      .page-list label:hover span:before,
      .unit-box input:checked + span:before,
      .unit-box label:hover span:before {
        background-image: url();
        background-size: 50px 100px;
      }
      .page-list label:hover span:before,
      .unit-box label:hover span:before {
        background-position: 0 -50px;
      }
      .page-list input:checked + span:before,
      .unit-box input:checked + span:before {
        background-position: 0 0;
      }
      .unit-box .sub-title {
        font-size: 12px;
        background: #000;
        color: #afafaf;
        line-height: 30px;
      }
      main {
        position: relative;
        height: 100vh;
      }
      .inspector,
      .navbar {
        position: absolute;
        top: 0;
        bottom: 0; /* display: flex; */
        width: 240px;
        height: 100vh;
        background: #232527;
        z-index: 5;
      }
      .section-view {
        width: 100%;
        height: calc(100vh - 60px);
        overflow: auto;
      }
      .inspector {
        transition: all 0.15s ease;
        right: -240px;
        display: block;
      }
      .inspector.active {
        right: 0;
      }
      .navbar {
        left: -240px;
        width: 240px;
        transition: all 0.15s ease;
      }
      .navbar.on {
        left: 0;
      }
      .header-left {
        position: relative;
      }
      .header-left .showBtn {
        position: absolute;
        top: 50vh;
        width: 20px;
        height: 84px;
        background-image: url("");
        right: -20px;
        cursor: pointer;
        transform: translateY(-50%);
        background-repeat: no-repeat;
        background-size: 20px auto;
        background-position-y: bottom;
      }
      .navbar nav {
        width: 40px;
        background: #000204;
      }
      .navbar section {
        flex: 1;
      }
      .tab {
        margin: 0;
        padding: 0;
        display: flex;
        width: 100%;
        list-style: none;
      }
      .tab li {
        display: flex;
        flex: 1;
        height: 60px;
        cursor: pointer;
        font-size: 12px;
        justify-content: center;
        align-items: center;
      }
      .tab li.current {
        background-color: #232527;
      }
      .tab li:before {
        content: "";
        width: 40px;
        height: 40px;
        background: url()
          no-repeat -50px 0;
        background-size: 100px 150px;
        overflow: hidden;
      }
      .tab li.current:before {
        background-position-x: 0;
      }
      .tab li.icon-slices:before {
        background-position-y: -50px;
      }
      .tab li.icon-colors:before {
        background-position-y: -100px;
      }
      #inspector .code-item {
        display: none !important;
      }
      #inspector .code-item textarea {
        padding: 16px;
      }
      #inspector .code-item.select {
        display: block !important;
      }
      #inspector .tab li {
        height: 40px;
      }
      #inspector .tab li:before {
        background-image: url();
      }
      #inspector .tab li.select {
        background-color: rgba(255, 255, 255, 0.05);
      }
      #inspector .tab li.select:before {
        background-position-x: 0;
      }
      #inspector .tab li.icon-android-panel:before {
        background-position-y: -50px;
      }
      #inspector .tab li.icon-ios-panel:before {
        background-position-y: -100px;
      }
      .screen-viewer {
        position: absolute;
        width: 101vw;
        height: 102.5vh;
        background: #191919
          url();
        background-size: 16px 16px;
        overflow: auto;
      }
      .screen-viewer .overlay {
        display: none;
        position: fixed;
        width: 100vw;
        height: 100vh;
        top: 60px;
        left: 0;
        background: transparent;
        overflow: hidden;
        z-index: 2;
        cursor: none;
      }
      .screen-viewer.moving-screen .overlay {
        display: block;
      }
      .screen-viewer-inner {
        position: relative;
        margin: 0 auto;
      }
      .screen {
        margin: 0 auto;
        position: absolute;
        left: 50%;
        top: 50%;
        background: #fff;
        box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
      }
      .screen.flow {
        left: 0;
        top: 0;
      }
      #flows {
        width: 100%;
        height: 100%;
      }
      #flows .flow {
        position: absolute;
        display: block;
        background-color: #f5a623;
        opacity: 0;
        cursor: pointer;
      }
      #flows.show-flows .flow {
        animation-duration: 0.5s;
        animation-name: flowTip;
      }
      @keyframes flowTip {
        0% {
          opacity: 0;
        }
        50% {
          opacity: 0.5;
        }
        100% {
          opacity: 0;
        }
      }
      .layer {
        position: absolute;
        cursor: pointer;
      }
      .hover,
      .selected {
        border: 1px solid #ee6723;
      }
      .has-slice {
        border: 1px dashed #ee6723;
        background: rgba(255, 85, 0, 0.32);
      }
      .layer b,
      .layer i {
        position: absolute;
        width: 5px;
        height: 5px;
        background: #fff;
        border: 1px solid #ee6723;
        border-radius: 50%;
        overflow: hidden;
        display: none;
      }
      .layer b {
        width: 3px;
        height: 3px;
        background: #ee6723;
      }
      .selected i {
        display: block;
      }
      .distance.h div[data-width]:before,
      .distance.v div[data-height]:before,
      .selected:after,
      .selected:before {
        position: absolute;
        display: block;
        left: 50%;
        top: -23px;
        transform: translateX(-50%);
        content: attr(data-width);
        font-size: 12px;
        color: #fff;
        height: 12px;
        line-height: 12px;
        padding: 4px;
        background: #ee6723;
        border-radius: 2px;
        z-index: 1;
      }
      .percentage-mode .distance.h div[data-width]:before,
      .percentage-mode .distance.v div[data-height]:before,
      .percentage-mode .selected:after,
      .percentage-mode .selected:before {
        content: attr(percentage-width);
      }
      .selected.hidden:after,
      .selected.hidden:before {
        display: none;
      }
      .distance.v div[data-height]:before,
      .selected:after {
        content: attr(data-height);
        left: auto;
        right: 0;
        top: 50%;
        transform: translateX(calc(100% + 3px)) translateY(-50%);
      }
      .percentage-mode .distance.v div[data-height]:before,
      .percentage-mode .selected:after {
        content: attr(percentage-height);
      }
      .layer .tl {
        top: -3px;
        left: -3px;
      }
      .layer .tr {
        top: -3px;
        right: -3px;
      }
      .layer .bl {
        bottom: -3px;
        left: -3px;
      }
      .layer .br {
        bottom: -3px;
        right: -3px;
      }
      .hover {
        border: 1px solid #419bf9;
      }
      .selected {
        border: 1px solid #ee6723;
      }
      .ruler {
        position: absolute;
        width: 100%;
        height: 100%;
        border: 1px dashed #419bf9;
      }
      .ruler.h {
        border-left: 0;
        border-right: 0;
      }
      .ruler.v {
        border-top: 0;
        border-bottom: 0;
      }
      .distance,
      .distance div,
      .distance div:before,
      .distance:after,
      .distance:before {
        position: absolute;
      }
      .distance.v,
      .distance.v div {
        width: 1px;
      }
      .distance.h,
      .distance.h div {
        height: 1px;
      }
      .distance.v div {
        top: 0;
        bottom: 0;
        background: #ee6723;
      }
      .distance.h div {
        left: 0;
        right: 0;
        background: #ee6723;
      }
      .distance.v:after,
      .distance.v:before {
        content: "";
        top: 0;
        left: -2px;
        width: 5px;
        height: 1px;
        background: #ee6723;
      }
      .distance.h:after,
      .distance.h:before {
        content: "";
        top: -2px;
        left: 0;
        width: 1px;
        height: 5px;
        background: #ee6723;
      }
      .distance.v:after {
        top: auto;
        bottom: 0;
      }
      .distance.h:after {
        left: auto;
        right: 0;
      }
      .note {
        position: absolute;
        margin: -12px 0 0 -12px;
        width: 24px;
        height: 24px;
        background: #f5a623;
        border-radius: 50%;
        border: 2px solid #fff;
        box-shadow: 0 0 3px rgba(0, 0, 0, 0.24);
      }
      .note:before {
        content: attr(data-index);
        font-size: 12px;
        display: block;
        color: #fff;
        text-align: center;
        width: 100%;
        height: 100%;
        line-height: 20px;
      }
      .note:hover {
        box-shadow: 0 0 3px rgba(0, 0, 0, 0.64);
      }
      .note div {
        position: absolute;
        top: 50%;
        left: 30px;
        border-radius: 4px;
        padding: 8px;
        background: #fff;
        box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
        -webkit-user-select: text;
        color: #222;
        transform: translateY(-50%);
        z-index: 2;
      }
      .note div:before {
        content: "";
        position: absolute;
        left: -7px;
        top: 50%;
        width: 8px;
        height: 14px;
        background: url()
          no-repeat;
        background-size: 8px 14px;
        transform: translateY(-50%);
      }
      .slidebox {
        position: relative;
        width: 40px;
        height: 20px;
        display: inline-block;
        transform: scale(0.8);
      }
      .slidebox input {
        visibility: hidden;
      }
      .slidebox label {
        position: absolute;
        top: 0;
        left: 0;
        width: 40px;
        height: 20px;
        background: #898989;
        box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.3);
        border-radius: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
      }
      .slidebox label:after {
        position: absolute;
        content: "";
        top: 2px;
        left: 2px;
        width: 16px;
        height: 16px;
        background-image: linear-gradient(-180deg, #f8f9f6 0, #f5f5f5 100%);
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
        border-radius: 8px;
        transition: all 0.15s ease;
      }
      .slidebox input[type="checkbox"]:checked + label {
        background: #3484f5;
      }
      .slidebox input[type="checkbox"]:checked + label:after {
        left: 22px;
      }
      .inspector {
        overflow-x: hidden;
      }
      .inspector h2,
      .inspector h3 {
        margin: 0;
        padding: 0;
        font-weight: 400;
      }
      .inspector h2 {
        font-size: 12px;
        line-height: 24px;
        padding: 12px 16px;
        text-align: center;
      }
      .inspector h3 {
        /* height: 32px; */
        font-size: 12px;
        line-height: 32px;
        padding: 0 16px;
        background-image: linear-gradient(
          90deg,
          rgba(0, 4, 9, 0.32) 0,
          rgba(0, 2, 4, 0) 100%
        );
      }
      .inspector .context {
        padding: 16px;
      }
      .inspector .color,
      .inspector .item {
        display: flex;
        margin: 0 0 8px;
      }
      .inspector .item[data-label]:before {
        content: attr(data-label);
        display: block;
        width: 70px;
        font-size: 12px;
        height: 24px;
        line-height: 24px;
      }
      .inspector .color:last-child,
      .inspector .item:last-child {
        margin: 0;
      }
      .inspector .item div,
      .inspector .item label {
        flex: 1;
      }
      .inspector .item label {
        padding: 0 4px;
      }
      .inspector .item label:first-child {
        padding: 0 4px 0 0;
      }
      .inspector .item label:last-child {
        padding: 0 0 0 4px;
      }
      .inspector .item label:only-child {
        padding: 0;
      }
      .inspector .item label[data-label]:after {
        content: attr(data-label);
        font-size: 10px;
        text-align: center;
        display: block;
        margin: 2px 0 0;
      }
      .inspector input,
      .inspector textarea {
        padding: 3px 4px;
        width: 100%;
        background: rgba(255, 255, 255, 0.05);
        border-radius: 2px;
        border: 0;
        line-height: 18px;
        height: 24px;
        font-size: 12px;
        color: #fff;
        text-align: center;
        outline: 0;
        resize: none;
      }
      .inspector textarea {
        min-width: 100%;
        height: auto;
        text-align: left;
      }
      .context h4 {
        font-size: 12px;
        font-weight: 400;
        position: 0;
        margin: 0 0 16px;
        color: #fff;
      }
      .context h4:before {
        margin: 0 10px 0 0;
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        border-radius: 1px;
        background: #3484f5;
      }
      .context .colors {
        margin: 0 0 8px;
      }
      .context .colors:last-child,
      .context .items-group:last-child {
        margin: 0;
      }
      .context .items-group {
        margin: 0 0 24px;
      }
      .inspector .color {
        display: block;
      }
      .inspector .color[data-name]:after {
        content: attr(data-name);
        font-size: 10px;
        text-align: center;
        padding: 0 0 0 24px;
        display: block;
        margin: 2px 0 0;
      }
      .inspector .color label,
      .inspector .color label em,
      .inspector .color label em i {
        position: absolute;
        display: block;
        width: 24px;
        height: 24px;
        padding: 0;
      }
      .inspector .color label em {
        position: relative;
        background-color: #fff;
        background-image: linear-gradient(
            45deg,
            #dddadc 25%,
            transparent 25%,
            transparent 75%,
            #dddadc 75%,
            #dddadc
          ),
          linear-gradient(
            45deg,
            #dddadc 25%,
            transparent 25%,
            transparent 75%,
            #dddadc 75%,
            #dddadc
          );
        background-size: 12px 12px;
        background-position: 0 0, 6px 6px;
        border-radius: 2px 0 0 2px;
        overflow: hidden;
      }
      .inspector .color label em i {
        position: relative;
      }
      .inspector .item .color input {
        text-align: center;
      }
      .inspector .color input {
        padding-left: 32px;
        width: 100%;
        text-align: left;
      }
      .gradient .color label:before {
        position: absolute;
        top: 12px;
        left: 11px;
        content: "";
        width: 2px;
        height: 32px;
        background: #fff;
        z-index: 2;
        box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2);
      }
      .gradient .color label:after {
        position: absolute;
        top: 8px;
        left: 8px;
        content: "";
        width: 8px;
        height: 8px;
        background: #fff;
        z-index: 3;
        border-radius: 4px;
        box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2);
      }
      .gradient .color[data-name] label:before {
        height: 42px;
      }
      .gradient .color:last-child label:before {
        display: none;
      }
      .navbar section {
        position: relative;
        overflow: auto;
      }
      .artboard-list,
      .asset-list,
      .color-list {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      .artboard-list li {
        padding: 16px;
        display: flex;
        cursor: pointer;
      }
      .artboard-list li:hover,
      .asset-list li:hover,
      .color-list li:hover {
        background: #191a1e;
      }
      .artboard-list li.active {
        background: #454748;
      }
      .artboard-list.no-preview .preview-img {
        display: none;
      }
      .preview-img {
        display: block;
        width: 44px;
        height: 44px;
        text-align: center;
        background: rgba(0, 0, 0, 0.32);
      }
      .preview-img:before {
        content: " ";
        display: inline-block;
        vertical-align: middle;
        height: 100%;
      }
      .preview-img > img {
        max-width: 44px;
        max-height: 44px;
        background: #fff;
        vertical-align: middle;
      }
      .pages-select {
        height: 60px;
        background-image: linear-gradient(
          90deg,
          rgba(0, 4, 9, 0.32) 0,
          rgba(0, 2, 4, 0) 100%
        );
      }
      .pages-select,
      .flow-starts .title {
        padding: 24px;
        position: relative;
        background-image: linear-gradient(
          90deg,
          rgba(0, 4, 9, 0.32) 0,
          rgba(0, 2, 4, 0) 100%
        );
      }
      .pages-select h3,
      .flow-starts .title h3 {
        margin: 0;
        text-align: center;
        font-size: 12px;
        font-weight: 400;
        color: #fff;
      }
      .pages-select h3 {
        cursor: pointer;
      }
      .page-list em,
      .pages-select h3 em,
      .flow-starts .title h3 em {
        font-style: normal;
        font-size: 10px;
        color: #989a9c;
      }
      .pages-select h3:after {
        content: "";
        margin: 0 0 0 4px;
        width: 12px;
        height: 6px;
        display: inline-block;
        background: url()
          no-repeat;
        background-size: 12px 6px;
      }
      .pages-select .page-list {
        display: none;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: -32px 0 0;
        padding: 8px;
        border-radius: 4px;
        list-style: none;
        width: 180px;
        background: #0f0f0f; /* box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .8); */
        max-height: 260px;
        overflow-y: auto;
      }
      .pages-select:focus {
        outline: 0;
      }
      .pages-select:focus .page-list {
        display: block;
      }
      .pages-select .page-list label {
        padding: 10px;
        cursor: pointer;
      }
      .pages-select .page-list label,
      .pages-select .page-list span {
        display: block;
      }
      .page-list span:before {
        position: absolute;
        right: 8px;
      }
      .exportable {
        margin: 0;
        padding: 0;
        list-style: none;
        background: #191a1e;
        border: 1px solid #2d2f31;
        border-radius: 4px;
      }
      .exportable li {
        position: relative;
        padding: 0 8px;
        height: 50px;
        line-height: 50px;
        border-bottom: 1px solid #222;
        white-space: nowrap;
        text-overflow: ellipsis;
      }
      .exportable li a {
        display: flex;
        color: #fff;
        text-decoration: none;
        outline: 0;
        align-items: center;
        overflow: hidden;
      }
      .exportable li:last-child {
        border: 0;
      }
      .exportable .dragExp {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
      }
      .exportable .thumbExp {
        width: 32px;
        opacity: 1;
        max-height: 32px;
        margin: 8px;
        display: inline-block;
      }
      .asset-list li,
      .color-list li {
        padding: 24px;
        display: flex;
        cursor: pointer;
        width: 240px;
        overflow: hidden;
      }
      .color-list li {
        cursor: default;
      }
      .asset-list li picture,
      .color-list li em {
        position: relative;
        display: block;
        text-align: center;
        width: 32px;
        height: 32px;
        background-color: #4a4a4a;
        background-image: linear-gradient(
            45deg,
            #000 25%,
            transparent 25%,
            transparent 75%,
            #000 75%,
            #000
          ),
          linear-gradient(
            45deg,
            #000 25%,
            transparent 25%,
            transparent 75%,
            #000 75%,
            #000
          );
        background-size: 8px 8px;
        background-position: 0 0, 4px 4px;
        border-radius: 2px;
      }
      .color-list li em {
        background-color: #fff;
        background-image: linear-gradient(
            45deg,
            #dddadc 25%,
            transparent 25%,
            transparent 75%,
            #dddadc 75%,
            #dddadc
          ),
          linear-gradient(
            45deg,
            #dddadc 25%,
            transparent 25%,
            transparent 75%,
            #dddadc 75%,
            #dddadc
          );
        border-radius: 50%;
        overflow: hidden;
      }
      .color-list li em i {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
      }
      .artboard-list li div,
      .asset-list li div,
      .color-list li div {
        padding: 0 0 0 16px;
        flex: 1;
      }
      .artboard-list li div {
        padding: 6px 0 4px 16px;
      }
      .asset-list li picture:before {
        content: "";
        display: inline-block;
        height: 100%;
        vertical-align: middle;
      }
      .asset-list li picture img {
        vertical-align: middle;
        max-width: 28px;
        max-height: 28px;
      }
      .asset-list li picture:after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
      }
      .artboard-list h3,
      .asset-list h3,
      .color-list h3 {
        margin: 0 0 4px;
        padding: 0;
        color: #fff;
        font-size: 12px;
        font-weight: 400;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .artboard-list small,
      .asset-list small,
      .color-list small {
        font-size: 10px;
      }
      .artboard-list li.active small {
        color: #fff;
      }
      .empty {
        position: absolute;
        top: 30%;
        left: 0;
        right: 0;
        transform: translateY(-50%);
        vertical-align: middle;
        text-align: center;
      }
      .message {
        position: absolute;
        top: 50%;
        left: 50%;
        padding: 10px 20px;
        max-width: 320px;
        transform: translateX(-50%) translateY(-50%);
        text-align: center;
        border-radius: 4px;
        background: rgba(0, 0, 0, 0.96);
        border: 1px solid rgba(255, 255, 255, 0.16);
        color: #fff;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.32);
        z-index: 9999;
        display: none;
      }
      .cursor {
        position: absolute;
        margin: 0 0 0 -5px;
        top: 50%;
        left: 50%;
        width: 16px;
        height: 17px;
        background-size: 16px 17px;
        background-image: url("");
        background-repeat: no-repeat;
        cursor: none;
        z-index: 1;
      }
      .cursor.show {
        display: block;
      }
      .cursor.moving {
        background-image: url("");
      }
      .muser {
        width: 42px;
        height: 42px;
        background: url()
          no-repeat 0 0;
        background-size: 100px 150px;
        overflow: hidden;
        margin-left: 15px;
        cursor: pointer;
      }
      .copyAll {
        width: inherit;
        padding: 5px 15px 15px;
        text-align: center;
        cursor: pointer;
      } /* 展开样式 */
      .open {
        width: 100%;
        z-index: 99;
        padding: 0;
        position: fixed;
        left: 0;
        top: 0;
      }
      .open #artboards {
        position: relative;
        height: 100%;
        transition: width 0.35s;
      }
      .open #artboards .artboard-list {
        width: 100%;
        transition: width 0.35s;
        position: relative;
      }
      .open #artboards .artboard-list li {
        width: 180px;
        height: auto;
        padding: 10px;
        display: inline-table;
        cursor: pointer;
        margin: 15px;
        position: absolute;
        flex-wrap: wrap;
        transition: top 0.35s;
        transition: left 0.35s;
      }
      .open #artboards .artboard-list li div {
        padding: 4px 0;
      }
      .open #artboards .artboard-list li .preview-img {
        width: 100%;
        height: auto;
        background-size: 100% auto;
        background-repeat: no-repeat; /* opacity: 0; */
        transition: all 0.35s;
      }
      .open #artboards .artboard-list li .preview-img > img {
        width: inherit;
        max-width: inherit;
        max-height: initial;
        height: auto;
        vertical-align: middle; /* background-color: #fff; */
      } /* 分组列表 */
      .open #artboards .pages-select {
        display: block;
        width: 60px;
        padding: 0;
        position: fixed;
        top: 120px;
        left: 0;
        z-index: 999;
        opacity: 0.95;
        transition: opacity 0.35s;
        height: auto;
      }
      .open #artboards .pages-select .page-list {
        display: block;
        position: initial;
        opacity: 0.3;
        transition: all 0.35s;
        transform: translate(-80px, 0);
        max-height: 80vh;
        overflow-y: auto;
      }
      .open #artboards .pages-select:hover .page-list {
        opacity: 0.95;
        transform: translate(10px, 0);
        transition: all 0.35s;
      }
      @keyframes opacityView {
        0% {
          opacity: 0.3;
          transform: translate(-120px, 0);
        }
        25% {
          transform: translate(10px, 0);
          opacity: 0.95;
        }
        50% {
          opacity: 0.3;
          transform: translate(-120px, 0);
        }
        75% {
          transform: translate(10px, 0);
          opacity: 0.95;
        }
        100% {
          opacity: 0.95;
          transform: translate(-120px, 0);
        }
      }
      .open #artboards .pages-select h3 {
        opacity: 0;
      }
      .open #artboards .artboard-list {
        height: 100%;
      }
      .open .artboard-list,
      .asset-list,
      .color-list {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
      }
      .open .flow-starts,
      .open #artboards .flow-starts .artboard-list li {
        display: none;
      }
    </style>
    <script>
      !(function (e) {
        var t = {};
        function o(i) {
          if (t[i]) return t[i].exports;
          var n = (t[i] = { i: i, l: !1, exports: {} });
          return e[i].call(n.exports, n, n.exports, o), (n.l = !0), n.exports;
        }
        (o.m = e),
          (o.c = t),
          (o.d = function (e, t, i) {
            o.o(e, t) ||
              Object.defineProperty(e, t, { enumerable: !0, get: i });
          }),
          (o.r = function (e) {
            "undefined" != typeof Symbol &&
              Symbol.toStringTag &&
              Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }),
              Object.defineProperty(e, "__esModule", { value: !0 });
          }),
          (o.t = function (e, t) {
            if ((1 & t && (e = o(e)), 8 & t)) return e;
            if (4 & t && "object" == typeof e && e && e.__esModule) return e;
            var i = Object.create(null);
            if (
              (o.r(i),
              Object.defineProperty(i, "default", { enumerable: !0, value: e }),
              2 & t && "string" != typeof e)
            )
              for (var n in e)
                o.d(
                  i,
                  n,
                  function (t) {
                    return e[t];
                  }.bind(null, n)
                );
            return i;
          }),
          (o.n = function (e) {
            var t =
              e && e.__esModule
                ? function () {
                    return e.default;
                  }
                : function () {
                    return e;
                  };
            return o.d(t, "a", t), t;
          }),
          (o.o = function (e, t) {
            return Object.prototype.hasOwnProperty.call(e, t);
          }),
          (o.p = ""),
          o((o.s = 20));
      })([
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.init =
              t.project =
              t.localize =
              t.timestamp =
              t.langs =
              t.I18N =
              t.state =
                void 0),
            (t.state = {
              zoom: 1,
              unit: "px",
              scale: 1,
              artboardIndex: void 0,
              colorFormat: "color-hex",
              current: void 0,
              codeType: "css",
            }),
            (t.I18N = {}),
            (t.langs = navigator.language.toLocaleLowerCase()),
            (t.timestamp = new Date().getTime()),
            (t.localize = function (e) {
              let o = "zh" === t.langs ? "zh-cn" : t.langs;
              return t.I18N[o] && t.I18N[o][e] ? t.I18N[o][e] : e;
            }),
            (t.project = {}),
            (t.init = function (e) {
              (t.state.scale = 1),
                (t.state.colorFormat = e.colorFormat),
                (t.state.unit = e.unit),
                (t.I18N = e.languages || {}),
                (t.project = e);
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.message =
              t.unitBorderRadius =
              t.unitCss =
              t.unitSize =
              t.percentageSize =
              t.zoomSize =
                void 0);
          const i = o(0);
          function n(e, t) {
            let o = e / i.project.resolution,
              n = Math.round(o * i.state.scale * 100) / 100,
              a = i.state.unit.split("/"),
              r = a[0];
            return a.length > 1 && t && (r = a[1]), n + r;
          }
          function a(e) {
            let t = e.replace(/[^\d.]/g, "") / i.project.resolution;
            return (
              Math.round(t * i.state.scale * 100) / 100 +
              i.state.unit.split("/")[0] +
              ";"
            );
          }
          function r(e, t) {
            if (e) return l(e);
            {
              let e = /\d+(.\d+)?/g,
                o = t.match(e);
              return 1 == o.length ? a(t) : l(o);
            }
          }
          function l(e) {
            let t = [];
            for (let o = 0; o < e.length; o++) t.push(n(e[o]));
            return t.join(" ") + ";";
          }
          function s(e, t) {
            return n("width" == t ? e.rect.width : e.rect.height) + ";";
          }
          let c;
          (t.zoomSize = function (e) {
            return (e * i.state.zoom) / i.project.resolution;
          }),
            (t.percentageSize = function (e, t) {
              return Math.round((e / t) * 1e3) / 10 + "%";
            }),
            (t.unitSize = n),
            (t.unitCss = function (e) {
              let t = /^font-size:/,
                o = /^border-radius:/,
                l = /^border:/,
                c = /^box-shadow:/,
                d = /^width:/,
                u = /^height:/,
                p = /^line-height:/,
                h = i.state.current.layers[i.state.selectedIndex];
              return e.map((e) =>
                t.test(e)
                  ? "font-size: " + a(e)
                  : d.test(e)
                  ? "width: " + s(h, "width")
                  : u.test(e)
                  ? "height: " + s(h, "height")
                  : p.test(e)
                  ? "line-height: " + a(e)
                  : o.test(e)
                  ? "border-radius: " + r(h.radius, e)
                  : l.test(e)
                  ? (function (e, t) {
                      let o = [];
                      if (null != e.borders) {
                        for (let t = e.borders.length - 1; t >= 0; t--) {
                          let i = e.borders[t];
                          o.push(
                            "border: " +
                              n(i.thickness) +
                              " solid " +
                              i.color["css-rgba"] +
                              ";"
                          );
                        }
                        return o.join("");
                      }
                      return t;
                    })(h, e)
                  : c.test(e)
                  ? (function (e, t) {
                      let o = [];
                      if (e.shadows) {
                        for (let t = e.shadows.length - 1; t >= 0; t--) {
                          let i = e.shadows[t],
                            a = "Inner" == i.type ? "inset " : "";
                          o.push(
                            "box-shadow: " +
                              a +
                              n(i.offsetX) +
                              " " +
                              n(i.offsetY) +
                              " " +
                              n(i.blurRadius) +
                              " " +
                              n(i.spread) +
                              " ",
                            i.color["css-rgba"] + ";"
                          );
                        }
                        return o.join("");
                      }
                      return t;
                    })(h, e)
                  : e
              );
            }),
            (t.unitBorderRadius = r),
            (t.message = function (e) {
              let t = document.querySelector("#message");
              (t.innerText = e),
                (t.style.display = "inherit"),
                c && (clearTimeout(c), (c = void 0)),
                (c = setTimeout(() => (t.style.display = "none"), 1e3));
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.clickElement =
              t.getIntersection =
              t.scaleSize =
              t.removeSelected =
              t.selectedLayer =
              t.mouseoutLayer =
              t.getIndex =
              t.getEventTarget =
                void 0);
          const i = o(0),
            n = o(5);
          (t.getEventTarget = function (e, t, o) {
            let i = t.target;
            for (; i && i !== e; ) {
              if (i.matches(o)) return i;
              i = i.parentElement;
            }
          }),
            (t.getIndex = function (e) {
              return parseInt(e.dataset.index);
            }),
            (t.mouseoutLayer = function () {
              var e;
              null === (e = document.querySelector(".hover")) ||
                void 0 === e ||
                e.classList.remove("hover"),
                (document.querySelector("#rulers").style.display = "none");
            }),
            (t.selectedLayer = function () {
              var e;
              if (null == i.state.selectedIndex) return !1;
              null === (e = document.querySelector(".selected")) ||
                void 0 === e ||
                e.classList.remove("selected"),
                document
                  .querySelector("#layer-" + i.state.selectedIndex)
                  .classList.add("selected"),
                (document.querySelector("#rulers").style.display = "none");
            }),
            (t.removeSelected = function () {
              if (void 0 === i.state.selectedIndex) return !1;
              document
                .querySelector("#layer-" + i.state.selectedIndex)
                .classList.remove("selected"),
                (document.querySelector("#rulers").style.display = "none"),
                document.querySelector("#inspector").classList.remove("active"),
                (i.state.selectedIndex = void 0),
                (i.state.tempTargetRect = void 0),
                n.hideDistance();
            }),
            (t.scaleSize = function (e) {
              return Math.round((e / i.state.scale) * 10) / 10;
            }),
            (t.getIntersection = function (e, t) {
              let o = Math.max(e.x, t.x),
                i = Math.max(e.y, t.y),
                n = Math.min(e.x + e.width, t.x + t.width) - o,
                a = Math.min(e.y + e.height, t.y + t.height) - i;
              if (!(n <= 0 || a <= 0))
                return { x: o, y: i, width: n, height: a };
            }),
            (t.clickElement = function (e) {
              let t = document.createEvent("MouseEvents");
              t.initEvent("click", !0, !0), e.dispatchEvent(t);
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.eventDelegate = void 0),
            (t.eventDelegate = function (e, t, o, i, n) {
              function a(e) {
                let t = e.target,
                  n = e.currentTarget;
                for (; t !== n; ) {
                  if (t.matches(o)) return void i.call(t, ...arguments);
                  t = t.parentElement;
                }
              }
              "string" != typeof e
                ? e.addEventListener(t, a)
                : document
                    .querySelectorAll(e)
                    .forEach((e) => e.addEventListener(t, a));
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.propertyType = t.colorItem = void 0);
          const i = o(0),
            n = o(0);
          (t.colorItem = function (e) {
            var t = n.project.colorNames
              ? n.project.colorNames[e["argb-hex"]]
              : "";
            return [
              '<div class="color"' +
                (t = t ? ' data-name="' + t + '"' : "") +
                ">",
              '<label><em><i style="background-color:' +
                e["css-rgba"] +
                ';"></i></em></label><input data-color="' +
                encodeURI(JSON.stringify(e)) +
                '" type="text" value="' +
                e[i.state.colorFormat] +
                '" readonly="readonly">',
              "</div>",
            ].join("");
          }),
            (t.propertyType = function (e, t, o) {
              var i = o ? ' style="padding:0"' : "";
              return [
                "<section>",
                "<h3>" + n.localize(e) + "</h3>",
                '<div class="context"' + i + ">",
                t,
                "</div>",
                "</section>",
              ].join("");
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.hideDistance = t.distance = void 0);
          const i = o(1),
            n = o(0),
            a = o(2);
          function r(e) {
            return n.state.current.layers[e].rect;
          }
          (t.distance = function () {
            if (void 0 === n.state.selectedIndex) return;
            if (
              n.state.selectedIndex == n.state.targetIndex &&
              !n.state.tempTargetRect
            )
              return;
            var e,
              t,
              o,
              l,
              s = r(n.state.selectedIndex),
              c = n.state.tempTargetRect || r(n.state.targetIndex),
              d = i.zoomSize(s.x + s.width / 2),
              u = i.zoomSize(s.y + s.height / 2);
            let p = s.x + s.width,
              h = s.y + s.height,
              v = c.x + c.width,
              y = c.y + c.height;
            if (a.getIntersection(s, c)) {
              var m =
                ((g = c),
                {
                  top: (f = s).y - g.y,
                  right: g.x + g.width - f.x - f.width,
                  bottom: g.y + g.height - f.y - f.height,
                  left: f.x - g.x,
                });
              0 != m.top &&
                (e = {
                  x: d,
                  y: m.top > 0 ? i.zoomSize(c.y) : i.zoomSize(s.y),
                  h: i.zoomSize(Math.abs(m.top)),
                  distance: i.unitSize(Math.abs(m.top)),
                  percentageDistance: i.percentageSize(
                    Math.abs(m.top),
                    n.state.current.height
                  ),
                }),
                0 != m.right &&
                  (t = {
                    x: m.right > 0 ? i.zoomSize(p) : i.zoomSize(v),
                    y: u,
                    w: i.zoomSize(Math.abs(m.right)),
                    distance: i.unitSize(Math.abs(m.right)),
                    percentageDistance: i.percentageSize(
                      Math.abs(m.right),
                      n.state.current.width
                    ),
                  }),
                0 != m.bottom &&
                  (o = {
                    x: d,
                    y: m.bottom > 0 ? i.zoomSize(h) : i.zoomSize(y),
                    h: i.zoomSize(Math.abs(m.bottom)),
                    distance: i.unitSize(Math.abs(m.bottom)),
                    percentageDistance: i.percentageSize(
                      Math.abs(m.bottom),
                      n.state.current.height
                    ),
                  }),
                0 != m.left &&
                  (l = {
                    x: m.left > 0 ? i.zoomSize(c.x) : i.zoomSize(s.x),
                    y: u,
                    w: i.zoomSize(Math.abs(m.left)),
                    distance: i.unitSize(Math.abs(m.left)),
                    percentageDistance: i.percentageSize(
                      Math.abs(m.left),
                      n.state.current.width
                    ),
                  });
            } else
              s.y > y &&
                (e = {
                  x: d,
                  y: i.zoomSize(y),
                  h: i.zoomSize(s.y - y),
                  distance: i.unitSize(s.y - y),
                  percentageDistance: i.percentageSize(
                    s.y - y,
                    n.state.current.height
                  ),
                }),
                p < c.x &&
                  (t = {
                    x: i.zoomSize(p),
                    y: u,
                    w: i.zoomSize(c.x - p),
                    distance: i.unitSize(c.x - p),
                    percentageDistance: i.percentageSize(
                      c.x - p,
                      n.state.current.width
                    ),
                  }),
                h < c.y &&
                  (o = {
                    x: d,
                    y: i.zoomSize(h),
                    h: i.zoomSize(c.y - h),
                    distance: i.unitSize(c.y - h),
                    percentageDistance: i.percentageSize(
                      c.y - h,
                      n.state.current.height
                    ),
                  }),
                s.x > v &&
                  (l = {
                    x: i.zoomSize(v),
                    y: u,
                    w: i.zoomSize(s.x - v),
                    distance: i.unitSize(s.x - v),
                    percentageDistance: i.percentageSize(
                      s.x - v,
                      n.state.current.width
                    ),
                  });
            var f, g;
            if (e) {
              let t = document.querySelector("#td");
              (t.style.left = e.x + "px"),
                (t.style.top = e.y + "px"),
                (t.style.height = e.h + "px"),
                (t.style.display = "");
              let o = document.querySelector("#td div");
              o.setAttribute("data-height", e.distance),
                o.setAttribute("percentage-height", e.percentageDistance);
            }
            if (t) {
              let e = document.querySelector("#rd");
              (e.style.left = t.x + "px"),
                (e.style.top = t.y + "px"),
                (e.style.width = t.w + "px"),
                (e.style.display = "");
              let o = document.querySelector("#rd div");
              o.setAttribute("data-width", t.distance),
                o.setAttribute("percentage-width", t.percentageDistance);
            }
            if (o) {
              let e = document.querySelector("#bd");
              (e.style.left = o.x + "px"),
                (e.style.top = o.y + "px"),
                (e.style.height = o.h + "px"),
                (e.style.display = "");
              let t = document.querySelector("#bd div");
              t.setAttribute("data-height", o.distance),
                t.setAttribute("percentage-height", o.percentageDistance);
            }
            if (l) {
              let e = document.querySelector("#ld");
              (e.style.left = l.x + "px"),
                (e.style.top = l.y + "px"),
                (e.style.width = l.w + "px"),
                (e.style.display = "");
              let t = document.querySelector("#ld div");
              t.setAttribute("data-width", l.distance),
                t.setAttribute("percentage-width", l.percentageDistance);
            }
            document.querySelector(".selected").classList.add("hidden");
          }),
            (t.hideDistance = function () {
              var e;
              ["#td", "#rd", "#bd", "#ld"].forEach((e) => {
                document.querySelector(e).style.display = "none";
              }),
                null === (e = document.querySelector(".selected")) ||
                  void 0 === e ||
                  e.classList.remove("hidden");
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.parseURLHash =
              t.getURLHash =
              t.historyBackUntilAnotherArtboard =
              t.updateURLHash =
              t.navigateByURLHash =
              t.gotoArtboard =
                void 0);
          const i = o(0),
            n = o(7),
            a = o(13),
            r = o(1),
            l = o(8),
            s = o(9),
            c = o(2),
            d = o(16);
          function u(e, t = !0) {
            var o, s;
            let u;
            if ((d.setShouldBackToAnother(!1), "number" == typeof e)) u = e;
            else if (((u = n.MapArtboardIDToIndex[e]), u < 0))
              return void r.message(
                i.localize("Target artboard not exported.")
              );
            i.state.artboardIndex != u &&
              (document.querySelector("#flows").classList.remove("show-flows"),
              c.removeSelected(),
              (i.state.artboardIndex = u),
              (i.state.selectedIndex = void 0),
              (i.state.current = i.project.artboards[i.state.artboardIndex]),
              l.updateScreen(!0),
              n.layers(),
              a.notes(),
              document
                .querySelectorAll(".active")
                .forEach((e) => e.classList.remove("active")),
              null === (o = document.querySelector("#artboard-" + u)) ||
                void 0 === o ||
                o.classList.add("active"),
              null === (s = document.querySelector("#startpoint-" + u)) ||
                void 0 === s ||
                s.classList.add("active"),
              t && p(),
              (document.title = i.state.current.name + " - Sketch MeaXure"));
          }
          function p() {
            let e = h();
            window.location.hash != e && (window.location.hash = e);
          }
          function h() {
            return `#${s.flowMode ? "p" : "s"}${i.state.artboardIndex}`;
          }
          function v() {
            let e = { flowMode: !1, artboardIndex: 0 },
              t = window.location.hash;
            e.flowMode = "p" === t.substr(1, 1);
            let o = Number(t.substr(1));
            return (
              isNaN(o) && (o = Number(t.substr(2))),
              isNaN(o) && (o = 0),
              (e.artboardIndex = o),
              e
            );
          }
          (t.gotoArtboard = u),
            (t.navigateByURLHash = function (e = !0) {
              let t = v();
              u(t.artboardIndex, !1),
                s.flowMode !== t.flowMode && s.setFlowMode(t.flowMode),
                e && p();
            }),
            (t.updateURLHash = p),
            (t.historyBackUntilAnotherArtboard = function () {
              d.setShouldBackToAnother(!0), history.back();
            }),
            (t.getURLHash = h),
            (t.parseURLHash = v);
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.layers = t.MapArtboardIDToIndex = void 0);
          const i = o(0),
            n = o(1),
            a = o(26);
          (t.MapArtboardIDToIndex = void 0),
            (t.layers = function () {
              !(function () {
                let e = [];
                i.state.current.layers.forEach((t, o) => {
                  if (t.type == a.SMType.group || t.type == a.SMType.hotspot)
                    return;
                  let r = n.zoomSize(t.rect.x),
                    l = n.zoomSize(t.rect.y),
                    s = n.zoomSize(t.rect.width),
                    c = n.zoomSize(t.rect.height),
                    d = ["layer"],
                    u = t.rotation;
                  d.push("layer-" + t.objectID),
                    i.state.selectedIndex == o && d.push("selected"),
                    e.push(
                      [
                        `\n<div id="layer-${o}" \n    class="${d.join(
                          " "
                        )}" data-index="${o}" \n    percentage-width="${n.percentageSize(
                          t.rect.width,
                          i.state.current.width
                        )}" \n    percentage-height="${n.percentageSize(
                          t.rect.height,
                          i.state.current.height
                        )}" \n    data-width="${n.unitSize(
                          t.rect.width
                        )}" \n    data-height="${n.unitSize(
                          t.rect.height
                        )}" \n    style="left: ${r}px; top: ${l}px; width: ${s}px; height: ${c}px; transform: rotate(${u}deg);"\n>\n    <i class="tl"></i><i class="tr"></i><i class="bl"></i><i class="br"></i>\n    <b class="et h"></b><b class="er v"></b><b class="eb h"></b><b class="el v"></b>\n</div>`,
                      ].join("")
                    );
                }),
                  (document.querySelector("#layers").innerHTML = e.join(""));
              })(),
                (function () {
                  t.MapArtboardIDToIndex = i.project.artboards.reduce(
                    (e, t, o) => ((e[t.objectID] = o), e),
                    { back: -1 }
                  );
                  let e = [];
                  i.state.current.layers
                    .filter(
                      (e) =>
                        e.flow &&
                        void 0 !== t.MapArtboardIDToIndex[e.flow.targetId]
                    )
                    .forEach((t, o) => {
                      let i = n.zoomSize(t.rect.x),
                        a = n.zoomSize(t.rect.y),
                        r = n.zoomSize(t.rect.width),
                        l = n.zoomSize(t.rect.height);
                      e.push(
                        [
                          `\n<div class="${["flow"].join(
                            " "
                          )}"\n    data-flow-target="${
                            t.flow.targetId
                          }"\n    style="left: ${i}px; top: ${a}px; width: ${r}px; height: ${l}px;"\n></div>`,
                        ].join("")
                      );
                    }),
                    (document.querySelector("#flows").innerHTML = e.join(""));
                })();
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.updateScreen = void 0);
          const i = o(0),
            n = o(1),
            a = o(9);
          t.updateScreen = function (e = !1) {
            let t = i.state.current.imageBase64
                ? i.state.current.imageBase64
                : i.state.current.imagePath + "?" + i.timestamp,
              o = document.querySelector("#screen"),
              r = o.parentElement,
              l = document.querySelector(".screen-viewer");
            (o.style.width = n.zoomSize(i.state.current.width) + "px"),
              (o.style.height = n.zoomSize(i.state.current.height) + "px"),
              (o.style.background = "#FFF url(" + t + ") no-repeat"),
              (o.style.backgroundSize =
                n.zoomSize(i.state.current.width) +
                "px " +
                n.zoomSize(i.state.current.height) +
                "px");
            let s =
              5 *
              Math.max(
                i.state.current.width,
                i.state.current.height,
                l.clientWidth,
                l.clientHeight
              );
            if (a.flowMode)
              return (
                (r.style.width = n.zoomSize(i.state.current.width) + "px"),
                (r.style.height = n.zoomSize(i.state.current.height) + "px"),
                (o.style.marginLeft = "0"),
                (o.style.marginTop = "0"),
                void (l.scrollTop = 0)
              );
            if (
              ((r.style.width = s + "px"),
              (r.style.height = s + "px"),
              (o.style.marginLeft =
                -n.zoomSize(i.state.current.width / 2) + "px"),
              (o.style.marginTop =
                -n.zoomSize(i.state.current.height / 2) + "px"),
              e)
            ) {
              l.scrollLeft = a.flowMode ? 0 : (s - l.clientWidth) / 2;
              let e =
                o.clientHeight > l.clientHeight
                  ? o.clientHeight
                  : l.clientHeight;
              l.scrollTop = a.flowMode ? 0 : (s - e) / 2;
            }
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.setFlowMode = t.flowEvents = t.flowMode = void 0);
          const i = o(6),
            n = o(2),
            a = o(8),
            r = o(14),
            l = o(15);
          function s(e) {
            t.flowMode = e;
            let o = document.querySelector(".screen-viewer"),
              i = document.querySelector("#screen"),
              s = i.getBoundingClientRect();
            document.querySelector("#flow-mode").checked = e;
            const c = t.flowMode ? "none" : "",
              d = t.flowMode ? "" : "none";
            [
              "#layers",
              "#unit",
              '.header-left [data-id="slices"]',
              '.header-left [data-id="colors"]',
              ".header-right",
              "#artboards .flow-starts",
            ].forEach((e) => {
              let t = document.querySelector(e);
              t && (t.style.display = c);
            }),
              ["#flows", "#artboards .flow-starts"].forEach((e) => {
                let t = document.querySelector(e);
                t && (t.style.display = d);
              }),
              t.flowMode
                ? (i.classList.add("flow"), n.removeSelected(), r.hideNavBar())
                : (i.classList.remove("flow"), r.showNavBar()),
              a.updateScreen(),
              l.alignElement({
                scroller: o,
                target: i,
                toRect: s,
                fromEdge: l.Edge.hcenter | l.Edge.vtop,
                toEdge: l.Edge.hcenter | l.Edge.vtop,
              });
          }
          (t.flowMode = void 0),
            (t.flowEvents = function () {
              document
                .querySelector("#flow-mode")
                .addEventListener("change", function () {
                  s(this.checked), i.updateURLHash();
                }),
                (function () {
                  let e = document.querySelector("#flows");
                  e.addEventListener("click", function (t) {
                    n.removeSelected(), r.hideNavBar();
                    let o = n.getEventTarget(e, t, ".flow");
                    if (!o)
                      return (
                        e.classList.remove("show-flows"),
                        setTimeout(() => {
                          e.classList.add("show-flows");
                        }, 0),
                        void t.stopPropagation()
                      );
                    let a = o.dataset.flowTarget;
                    "back" == a
                      ? i.historyBackUntilAnotherArtboard()
                      : i.gotoArtboard(a),
                      t.stopPropagation();
                  });
                })();
            }),
            (t.setFlowMode = s);
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.slices = void 0);
          const i = o(0),
            n = o(1);
          t.slices = function () {
            if (!i.project.slices) return !1;
            var e = [];
            e.push('<ul class="asset-list">'),
              i.project.slices.forEach((t) => {
                if (t.exportable.length > 0) {
                  var o = JSON.parse(JSON.stringify(t.exportable)).pop();
                  e.push(
                    '<li id="slice-' +
                      t.objectID +
                      '" class="slice-layer" data-objectId="' +
                      t.objectID +
                      '">',
                    '<picture><img src="assets/' +
                      o.path +
                      '" alt=""></picture>',
                    "<div>",
                    "<h3>" + t.name + "</h3>",
                    "<small>" +
                      n.unitSize(t.rect.width) +
                      " × " +
                      n.unitSize(t.rect.height) +
                      "</small>",
                    "</div>",
                    "</li>"
                  );
                }
              }),
              e.push("</ul>"),
              i.project.slices.length > 0 &&
                (document.querySelector("#slices").innerHTML = e.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.colors = void 0);
          const i = o(0),
            n = o(0);
          t.colors = function () {
            if (!n.project.colors) return !1;
            n.project.colorNames || (n.project.colorNames = {});
            var e = [];
            e.push('<ul class="color-list">'),
              n.project.colors.forEach((t, o) => {
                (n.project.colorNames[t.color["argb-hex"]] = t.name),
                  e.push(
                    '<li id="color-' +
                      o +
                      '" data-color="' +
                      encodeURI(JSON.stringify(t.color)) +
                      '">',
                    '<em><i style="background:' +
                      t.color["css-rgba"] +
                      '"></i></em>',
                    "<div>",
                    "<h3>" + t.name + "</h3>",
                    "<small>" + t.color[i.state.colorFormat] + "</small>",
                    "</div>",
                    "</li>"
                  );
              }),
              e.push("</ul>"),
              n.project.colors.length > 0 &&
                (document.querySelector("#colors").innerHTML = e.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.zoom = void 0);
          const i = o(0);
          function n(e, t) {
            let o = document.querySelector(t);
            e
              ? o.setAttribute("disabled", "disabled")
              : o.removeAttribute("disabled");
          }
          t.zoom = function () {
            var e = 100 * i.state.zoom + "%";
            i.state.zoom <= 0.25 ? n(!0, ".zoom-in") : n(!1, ".zoom-in"),
              i.state.zoom >= 4 ? n(!0, ".zoom-out") : n(!1, ".zoom-out"),
              (document.querySelector(".zoom-text").innerHTML = e);
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.notes = void 0);
          const i = o(0),
            n = o(1);
          t.notes = function () {
            var e = [];
            i.state.current.notes.forEach((t, o) => {
              e.push(
                '<div class="note" data-index="' +
                  (o + 1) +
                  '" style="left: ' +
                  n.zoomSize(t.rect.x) +
                  "px; top: " +
                  n.zoomSize(t.rect.y) +
                  'px;"><div style="white-space:nowrap;display:none;">' +
                  t.note +
                  "</div></div>"
              );
            }),
              (document.querySelector("#notes").innerHTML = e.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.showBtnNav = t.showNavBar = t.hideNavBar = t.tabEvents = void 0);
          const i = o(3);
          function n(e) {
            let t = document.querySelector(".navbar"),
              o = document.querySelector(".showBtn");
            e
              ? (t.classList.add("on"), (o.style.backgroundPositionY = ""))
              : (t.classList.remove("on"),
                (o.style.backgroundPositionY = "top"));
          }
          (t.tabEvents = function () {
            let e = document.querySelector(".header-left .tab"),
              t = document.querySelector(".navbar"),
              o = document.querySelector(".showBtn");
            i.eventDelegate(e, "click", "li", function (o) {
              let i = e.querySelector(".current");
              if (this === i) return void n(!1);
              null == i || i.classList.remove("current");
              let a = this.dataset.id;
              this.classList.add("current"),
                n(!0),
                t
                  .querySelectorAll("section")
                  .forEach((e) => (e.style.display = "none")),
                (t.querySelector("#" + a).style.display = "");
            }),
              o.addEventListener("click", function (e) {
                n(!t.classList.contains("on"));
              });
          }),
            (t.hideNavBar = function () {
              var e;
              null ===
                (e = document
                  .querySelector(".header-left .tab")
                  .querySelector(".current")) ||
                void 0 === e ||
                e.classList.remove("current"),
                n(!1);
            }),
            (t.showNavBar = function () {
              document
                .querySelector(".icon-artboards")
                .classList.add("current"),
                n(!0);
            }),
            (t.showBtnNav = n);
        },
        function (e, t, o) {
          "use strict";
          var i;
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.alignElement = t.Edge = void 0),
            (function (e) {
              (e[(e.vtop = 32)] = "vtop"),
                (e[(e.vbottom = 16)] = "vbottom"),
                (e[(e.vmiddle = 8)] = "vmiddle"),
                (e[(e.hleft = 4)] = "hleft"),
                (e[(e.hright = 2)] = "hright"),
                (e[(e.hcenter = 1)] = "hcenter");
            })((i = t.Edge || (t.Edge = {}))),
            (t.alignElement = function (e) {
              let t = e.fromRect || e.target.getBoundingClientRect(),
                o = e.fromEdge,
                n = e.toEdge,
                a = !!(56 & o),
                r = !!(56 & n),
                l = 0,
                s = 0;
              !!(7 & o) &&
                !!(7 & n) &&
                ((l = e.toRect.x - t.x),
                o & i.hcenter && (l -= t.width / 2),
                o & i.hright && (l -= t.width),
                n & i.hcenter && (l += e.toRect.width / 2),
                n & i.hright && (l += e.toRect.width)),
                a &&
                  r &&
                  ((s = e.toRect.y - t.y),
                  o & i.vmiddle && (s -= t.height / 2),
                  o & i.vbottom && (s -= t.height),
                  n & i.vmiddle && (s += e.toRect.height / 2),
                  n & i.vbottom && (s += e.toRect.height)),
                (e.scroller.scrollTop -= s),
                (e.scroller.scrollLeft -= l);
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.setShouldBackToAnother = t.hashChangeEvents = void 0);
          const i = o(6),
            n = o(0);
          let a = !1;
          (t.hashChangeEvents = function () {
            window.addEventListener("hashchange", function (e) {
              if (a) {
                if (i.parseURLHash().artboardIndex == n.state.artboardIndex)
                  return void history.back();
                a = !1;
              }
              i.navigateByURLHash(!1);
            });
          }),
            (t.setShouldBackToAnother = function (e) {
              a = e;
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.inspector = void 0);
          const i = o(0),
            n = o(29),
            a = o(30),
            r = o(31),
            l = o(32),
            s = o(33),
            c = o(34),
            d = o(35);
          t.inspector = function () {
            if (
              void 0 === i.state.selectedIndex ||
              (!i.state.current &&
                !i.state.current.layers &&
                !i.state.current.layers[i.state.selectedIndex])
            )
              return !1;
            let e = i.state.current.layers[i.state.selectedIndex],
              t = [
                "<h2>" + e.name + "</h2>",
                a.renderProperties(e),
                d.renderFills(e),
                s.renderFont(e),
                l.renderBorders(e),
                r.renderShadows(e),
                n.renderCodeTemplate(e),
                c.renderExportable(e),
              ],
              o = document.querySelector("#inspector"),
              u = document.querySelector("#inspectorCenter");
            o.classList.add("active"), (u.innerHTML = t.join(""));
            let p = o.querySelector("[data-codeType=" + i.state.codeType + "]");
            p &&
              (p.classList.add("select"),
              o
                .querySelector("#" + p.getAttribute("data-id"))
                .classList.add("select")),
              document.querySelectorAll("#code-tab li").forEach((e) =>
                e.addEventListener("click", function () {
                  var e;
                  let t = this.getAttribute("data-id");
                  (i.state.codeType = this.getAttribute("data-codeType")),
                    this.parentElement
                      .querySelector("li.select")
                      .classList.remove("select"),
                    this.classList.add("select"),
                    null === (e = o.querySelector("div.item.select")) ||
                      void 0 === e ||
                      e.classList.remove("select"),
                    o.querySelector("#" + t).classList.add("select");
                })
              );
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.panModeEvents = t.panMode = void 0);
          const i = o(2),
            n = o(5);
          (t.panMode = !1),
            (t.panModeEvents = function () {
              let e,
                o = !1;
              window.addEventListener("keydown", (e) => {
                32 === e.which &&
                  ((document.getElementById("cursor").style.display = ""),
                  document
                    .querySelector(".screen-viewer")
                    .classList.add("moving-screen"),
                  i.mouseoutLayer(),
                  n.hideDistance(),
                  (t.panMode = !0),
                  e.preventDefault());
              }),
                window.addEventListener("keyup", (e) => {
                  32 === e.which &&
                    ((document.getElementById("cursor").style.display = "none"),
                    document
                      .getElementById("cursor")
                      .classList.remove("moving"),
                    document
                      .querySelector(".screen-viewer")
                      .classList.remove("moving-screen"),
                    (t.panMode = !1),
                    (o = !1),
                    e.preventDefault());
                }),
                window.addEventListener("mousemove", (t) => {
                  let i = document.getElementById("cursor");
                  if (
                    ((i.style.left = t.clientX + "px"),
                    (i.style.top = t.clientY + "px"),
                    !o)
                  )
                    return;
                  let n = document.querySelector(".screen-viewer");
                  (n.scrollLeft = e.x - t.clientX + e.scrollLeft),
                    (n.scrollTop = e.y - t.clientY + e.scrollTop),
                    t.preventDefault();
                }),
                window.addEventListener("mousedown", (i) => {
                  if (!t.panMode) return;
                  let n = document.getElementById("cursor"),
                    a = document.querySelector(".screen-viewer");
                  n.classList.add("moving"),
                    (e = {
                      x: i.clientX,
                      y: i.clientY,
                      scrollLeft: a.scrollLeft,
                      scrollTop: a.scrollTop,
                    }),
                    (o = !0),
                    i.preventDefault();
                }),
                window.addEventListener("mouseup", (e) => {
                  if (!t.panMode || !o) return;
                  let i = document.getElementById("cursor");
                  document
                    .querySelector(".screen-viewer")
                    .classList.remove("moving-screen"),
                    i.classList.remove("moving"),
                    (o = !1),
                    e.preventDefault();
                });
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.zoomRender = t.zoomEvents = void 0);
          const i = o(0),
            n = o(8),
            a = o(7),
            r = o(13),
            l = o(12),
            s = o(5),
            c = o(3),
            d = o(15);
          function u(e) {
            (i.state.targetIndex = void 0),
              (document.querySelector("#rulers").style.display = "none"),
              s.hideDistance();
            let t = document.querySelector(".screen-viewer"),
              o = document.querySelector("#screen"),
              c = o.getBoundingClientRect(),
              u = (function (e, t) {
                let o = e.getBoundingClientRect(),
                  i = t.getBoundingClientRect(),
                  n = { x: o.x + o.width / 2, y: o.y + o.height / 2 };
                return { x: n.x - i.x, y: n.y - i.y };
              })(t, o),
              p = (u.x * e) / i.state.zoom,
              h = (u.y * e) / i.state.zoom;
            (i.state.zoom = e),
              l.zoom(),
              n.updateScreen(),
              d.alignElement({
                scroller: t,
                target: o,
                toRect: c,
                fromEdge: d.Edge.hleft | d.Edge.vtop,
                toEdge: d.Edge.hleft | d.Edge.vtop,
              }),
              (t.scrollLeft += p - u.x),
              (t.scrollTop += h - u.y),
              document
                .querySelectorAll("#layers, #notes")
                .forEach((e) => (e.innerHTML = "")),
              setTimeout(function () {
                a.layers(), r.notes();
              }, 150);
          }
          (t.zoomEvents = function () {
            let e = document.querySelector("#zoom");
            c.eventDelegate(
              e,
              "click",
              ".zoom-in:not(disabled), .zoom-out:not(disabled)",
              function (e) {
                this.classList.contains("zoom-in")
                  ? u(i.state.zoom - 0.25)
                  : u(i.state.zoom + 0.25),
                  e.stopPropagation();
              }
            ),
              document
                .querySelector(".zoom-text")
                .addEventListener("click", function (e) {
                  u(1);
                });
          }),
            (t.zoomRender = u);
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 });
          const i = o(21);
          window.meaxure = { render: i.render };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.render = void 0);
          const i = o(0),
            n = o(22),
            a = o(10),
            r = o(11),
            l = o(23),
            s = o(12),
            c = o(24),
            d = o(6),
            u = o(43);
          t.render = function (e) {
            i.init(e),
              (document.querySelector("#app").innerHTML = [
                "<header>",
                '<div class="header-center">',
                '<div class="muser"></div>',
                '<div id="zoom" class="zoom-widget">',
                '<button class="zoom-in"></button>',
                '<label class="zoom-text"></label>',
                '<button class="zoom-out"></button>',
                "</div>",
                '<div class="flow-mode">',
                `<label for="flow-mode">${i.localize("FLOW")}</label>`,
                `<div class="slidebox" title="${i.localize(
                  "Keyboard shortcut"
                )}: f">`,
                '<input id="flow-mode" type="checkbox" name="flow-mode">',
                '<label for="flow-mode"></label>',
                "</div>",
                "</div>",
                "<h1></h1>",
                '<div class="show-notes">',
                `<label for="show-notes">${i.localize("NOTES")}</label>`,
                `<div class="slidebox" title="${i.localize(
                  "Keyboard shortcut"
                )}: n">`,
                '<input id="show-notes" type="checkbox" name="show-notes" checked="checked">',
                '<label for="show-notes"></label>',
                "</div>",
                "</div>",
                "</div>",
                "</header>",
                "<main>",
                '<aside class="navbar on">',
                '<div class="header-left">',
                '<div class="showBtn"></div>',
                '<ul class="tab">',
                '<li class="icon-artboards current" data-id="artboards"></li>',
                '<li class="icon-slices" data-id="slices"></li>',
                '<li class="icon-colors" data-id="colors"></li>',
                "</ul>",
                "</div>",
                '<div class="section-view">',
                '<section id="artboards"></section>',
                `<section id="slices" style="display: none;"><div class="empty">${i.localize(
                  "No slices added!"
                )}</div></section>`,
                `<section id="colors" style="display: none;"><div class="empty">${i.localize(
                  "No colors added!"
                )}</div></section>`,
                "</div>",
                "</aside>",
                '<section class="screen-viewer">',
                '<div class="screen-viewer-inner">',
                '<div id="screen" class="screen">',
                '<div id="rulers" style="display:none;">',
                '<div id="rv" class="ruler v"></div>',
                '<div id="rh" class="ruler h"></div>',
                "</div>",
                '<div id="flows"></div>',
                '<div id="layers"></div>',
                '<div id="notes"></div>',
                '<div id="td" class="distance v" style="display:none;"><div data-height="3"></div></div>',
                '<div id="rd" class="distance h" style="display:none;"><div data-width=""></div></div>',
                '<div id="bd" class="distance v" style="display:none;"><div data-height=""></div></div>',
                '<div id="ld" class="distance h" style="display:none;"><div data-width=""></div></div>',
                "</div>",
                "</div>",
                '<div class="overlay"></div>',
                "</section>",
                '<aside class="inspector" id="inspector">',
                '<div class="header-right"><div id="unit" class="unit-box" tabindex="0">XHDPI @2x (dp/sp)</div></div>',
                '<div  id="inspectorCenter"></div>',
                "</aside>",
                "</main>",
                '<div id="message" class="message"></div>',
                '<div id="cursor" class="cursor" style="display: none;"></div>',
              ].join("")),
              s.zoom(),
              l.unit(),
              n.artboards(),
              a.slices(),
              r.colors(),
              c.events(),
              d.navigateByURLHash(!1),
              u.allAtlasMethod();
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.artboards = void 0);
          const i = o(0),
            n = o(0);
          t.artboards = function () {
            let e = [],
              t = [],
              o = [],
              a = {};
            e.push('<ul class="artboard-list">'),
              i.project.artboards.forEach((t, r) => {
                a[t.pageObjectID] ||
                  (a[t.pageObjectID] = {
                    name: t.pageName,
                    objectID: t.pageObjectID,
                    count: 0,
                  }),
                  a[t.pageObjectID].count++;
                let l = n.state.artboardIndex == r ? " active" : "",
                  s = t.imageBase64
                    ? t.imageBase64
                    : t.imageIconPath + "?" + i.timestamp,
                  c = `<picture class="preview-img" data-name="${t.name}"><img alt="${t.name}" src="${s}"></picture><div><h3>${t.name}</h3><small>${t.pageName}</small></div>`;
                e.push(
                  `<li id="artboard-${r}" class="artboard${l}" data-page-id="${t.pageObjectID}" data-id="${t.objectID}" data-index="${r}" >` +
                    c +
                    "</li>"
                ),
                  t.flowStartPoint &&
                    o.push(
                      `<li id="startpoint-${r}" class="artboard${l}" data-page-id="${t.pageObjectID}" data-id="${t.objectID}" data-index="${r}" >` +
                        c +
                        "</li>"
                    );
              }),
              e.push("</ul>"),
              t.push(
                '<div class="pages-select" tabindex="0">',
                `<h3>${i.localize("All artboards")} <em>(${
                  i.project.artboards.length
                })</em></h3>`,
                '<ul class="page-list">',
                `<li><label><input type="radio" name="page" value="all" checked="checked"><span>${i.localize(
                  "All artboards"
                )} <em>(${i.project.artboards.length})</em></span></label></li>`
              ),
              Object.keys(a).forEach((e) => {
                let o = a[e];
                t.push(
                  `<li><label><input type="radio" name="page" value="${o.objectID}"><span>${o.name} <em>(${o.count})</em></span></label></li>`
                );
              }),
              t.push("</ul>"),
              t.push("</div>"),
              o.length &&
                (o.unshift(
                  '<div class="flow-starts">',
                  '<div class="title">',
                  `<h3>${i.localize("Start points")} <em>(${
                    o.length
                  })</em></h3>`,
                  "</div>",
                  '<ul class="artboard-list">'
                ),
                o.push("</ul>", "</div>")),
              (document.querySelector("#artboards").innerHTML = [
                o.join(""),
                t.join(""),
                e.join(""),
              ].join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.unit = void 0);
          const i = o(0),
            n = o(0);
          t.unit = function () {
            let e = [
                {
                  name: n.localize("Device switch"),
                  units: [
                    {
                      name: n.localize("Web View") + " - px",
                      unit: "px",
                      scale: 1,
                    },
                    {
                      name: n.localize("iOS Devices") + " - pt",
                      unit: "pt",
                      scale: 1,
                    },
                    {
                      name: n.localize("Android Devices") + " - dp/sp",
                      unit: "dp/sp",
                      scale: 1,
                    },
                  ],
                },
                {
                  name: n.localize("Convert to pixels"),
                  units: [
                    {
                      name: "IOS " + n.localize("Points") + " @1x",
                      unit: "px",
                      scale: 1,
                    },
                    {
                      name: "IOS " + n.localize("Retina") + " @2x",
                      unit: "px",
                      scale: 2,
                    },
                    {
                      name: "IOS " + n.localize("Retina HD") + " @3x",
                      unit: "px",
                      scale: 3,
                    },
                    { name: "Android LDPI @0.75x", unit: "px", scale: 0.75 },
                    { name: "Android MDPI @1x", unit: "px", scale: 1 },
                    { name: "Android HDPI @1.5x", unit: "px", scale: 1.5 },
                    { name: "Android XHDPI @2x", unit: "px", scale: 2 },
                    { name: "Android XXHDPI @3x", unit: "px", scale: 3 },
                    { name: "Android XXXHDPI @4x", unit: "px", scale: 4 },
                  ],
                },
                {
                  name: n.localize("Convert to others"),
                  units: [
                    { name: "CSS Rem 8px", unit: "rem", scale: 1 / 8 },
                    { name: "CSS Rem 10px", unit: "rem", scale: 0.1 },
                    { name: "CSS Rem 12px", unit: "rem", scale: 1 / 12 },
                    { name: "CSS Rem 14px", unit: "rem", scale: 1 / 14 },
                    { name: "CSS Rem 16px", unit: "rem", scale: 1 / 16 },
                    { name: "Ubuntu Grid", unit: "gu", scale: 1 / 27 },
                  ],
                },
              ],
              t = [],
              o = [],
              a = "";
            e.forEach((e) => {
              e.name &&
                o.push('<li class="sub-title">' + n.localize(e.name) + "</li>"),
                e.units.forEach((e) => {
                  var t = "";
                  a ||
                    e.unit != i.state.unit ||
                    ((t = ' checked="checked"'), (a = n.localize(e.name))),
                    o.push(
                      '<li><label><input type="radio" name="resolution" data-name="' +
                        n.localize(e.name) +
                        '" data-unit="' +
                        e.unit +
                        '" data-scale="' +
                        e.scale +
                        '"' +
                        t +
                        "><span>" +
                        n.localize(e.name) +
                        "</span></label></li>"
                    );
                });
            }),
              t.push(
                "<h3>" + n.localize("Unit switch") + "</h3>",
                "<p>" + a + "</p>",
                "<ul>",
                "",
                o.join(""),
                "</ul>"
              ),
              (document.querySelector("#unit").innerHTML = t.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.events = void 0);
          const i = o(25),
            n = o(27),
            a = o(28),
            r = o(19),
            l = o(36),
            s = o(37),
            c = o(38),
            d = o(14),
            u = o(39),
            p = o(18),
            h = o(40),
            v = o(41),
            y = o(9),
            m = o(16),
            f = o(42);
          t.events = function () {
            a.layerEvents(),
              i.artboardsEvents(),
              r.zoomEvents(),
              l.unitEvents(),
              s.noteEvents(),
              c.inspectorEvents(),
              d.tabEvents(),
              u.sliceEvents(),
              p.panModeEvents(),
              h.percentageModeEvents(),
              v.keyboardZoomEvents(),
              n.dragExportableEvents(),
              y.flowEvents(),
              f.keyboardSwitchEvents(),
              m.hashChangeEvents();
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.artboardsEvents = void 0);
          const i = o(2),
            n = o(3),
            a = o(6);
          t.artboardsEvents = function () {
            let e = document.querySelector("#artboards");
            n.eventDelegate(e, "click", ".artboard", function (e) {
              let t = i.getIndex(this);
              a.gotoArtboard(t);
            }),
              n.eventDelegate(e, "change", "input[name=page]", function (e) {
                var t = document.querySelector(
                  ".page-list input[name=page]:checked"
                ).value;
                (document.querySelector(".pages-select h3").innerHTML =
                  this.parentElement.querySelector("span").innerHTML),
                  document
                    .querySelectorAll(".artboard-list li")
                    .forEach((e) => {
                      "all" == t || e.getAttribute("data-page-id") == t
                        ? (e.style.display = "")
                        : (e.style.display = "none");
                    }),
                  document.querySelector(".pages-select").blur(),
                  e.stopPropagation();
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.shadowType = t.SMType = void 0),
            (function (e) {
              (e.text = "text"),
                (e.symbol = "symbol"),
                (e.slice = "slice"),
                (e.shape = "shape"),
                (e.group = "group"),
                (e.hotspot = "hotspot");
            })(t.SMType || (t.SMType = {})),
            (function (e) {
              (e.outer = "Outer"), (e.inner = "Inner");
            })(t.shadowType || (t.shadowType = {}));
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.dragExportableEvents = void 0);
          const i = o(3);
          t.dragExportableEvents = function () {
            i.eventDelegate(
              document.body,
              "dragstart",
              ".exportable .dragExp",
              function (e) {
                (this.style.width = "auto"), (this.style.height = "auto");
                let t = this.getBoundingClientRect(),
                  o = e.pageX - t.left - this.offsetWidth / 2,
                  i = e.pageY - t.top - this.offsetHeight / 2;
                (this.style.left = o + "px"), (this.style.top = i + "px");
              }
            ),
              i.eventDelegate(
                document.body,
                "dragend",
                ".exportable .dragExp",
                function (e) {
                  (this.style.left = ""),
                    (this.style.top = ""),
                    (this.style.width = ""),
                    (this.style.height = "");
                }
              );
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.layerEvents = void 0);
          const i = o(0),
            n = o(2),
            a = o(17),
            r = o(5),
            l = o(18);
          t.layerEvents = function () {
            document.body.addEventListener("click", function (e) {
              if (l.panMode) return;
              if (
                n.getEventTarget(
                  document.body,
                  e,
                  "header, #inspector, .navbar"
                )
              )
                return void e.stopPropagation();
              let t = e.target;
              if (
                t.classList.contains("layer") ||
                t.classList.contains("slice-layer")
              ) {
                var o = t.classList.contains("slice-layer")
                  ? document.querySelector(".layer-" + t.dataset.objectid)
                  : t;
                return (
                  (i.state.selectedIndex = n.getIndex(o)),
                  r.hideDistance(),
                  n.mouseoutLayer(),
                  n.selectedLayer(),
                  void a.inspector()
                );
              }
              n.removeSelected();
            }),
              document.body.addEventListener("mousemove", function (e) {
                if (l.panMode) return;
                n.mouseoutLayer(), r.hideDistance();
                let t = e.target;
                t.classList.contains("screen-viewer") ||
                t.classList.contains("screen-viewer-inner")
                  ? ((i.state.tempTargetRect = (function (e) {
                      let t = document
                          .querySelector("#screen")
                          .getBoundingClientRect(),
                        o = (e.pageX - t.left) / i.state.zoom,
                        n = (e.pageY - t.top) / i.state.zoom,
                        a = 10,
                        r = 10,
                        l = o >= 0 && o <= i.state.current.width,
                        s = n >= 0 && n <= i.state.current.height;
                      o <= 0 && n <= 0
                        ? ((o = -10), (n = -10))
                        : o >= i.state.current.width && n <= 0
                        ? ((o = i.state.current.width), (n = -10))
                        : o >= i.state.current.width &&
                          n >= i.state.current.height
                        ? ((o = i.state.current.width),
                          (n = i.state.current.height))
                        : o <= 0 && n >= i.state.current.height
                        ? ((o = -10), (n = i.state.current.height))
                        : n <= 0 && l
                        ? ((o = 0), (n = -10), (a = i.state.current.width))
                        : o >= i.state.current.width && s
                        ? ((o = i.state.current.width),
                          (n = 0),
                          (r = i.state.current.height))
                        : n >= i.state.current.height && l
                        ? ((o = 0),
                          (n = i.state.current.height),
                          (a = i.state.current.width))
                        : o <= 0 &&
                          s &&
                          ((o = -10), (n = 0), (r = i.state.current.height));
                      l &&
                        s &&
                        ((o = 0),
                        (n = 0),
                        (a = i.state.current.width),
                        (r = i.state.current.height));
                      return { x: o, y: n, width: a, height: r };
                    })(e)),
                    (i.state.targetIndex = void 0),
                    r.distance())
                  : t.classList.contains("layer")
                  ? ((i.state.targetIndex = n.getIndex(e.target)),
                    (i.state.tempTargetRect = void 0),
                    (function () {
                      if (
                        i.state.targetIndex &&
                        i.state.selectedIndex == i.state.targetIndex
                      )
                        return !1;
                      var e = document.querySelector(
                        "#layer-" + i.state.targetIndex
                      );
                      e.classList.add("hover");
                      let t = document.querySelector("#rv");
                      (t.style.left = e.offsetLeft + "px"),
                        (t.style.width = e.offsetWidth + "px");
                      let o = document.querySelector("#rh");
                      (o.style.top = e.offsetTop + "px"),
                        (o.style.height = e.offsetHeight + "px"),
                        (document.querySelector("#rulers").style.display = "");
                    })(),
                    r.distance())
                  : (i.state.tempTargetRect = void 0);
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderCodeTemplate = void 0);
          const i = o(1),
            n = o(2),
            a = o(4);
          function r(e) {
            return (
              'android:layout_width="' +
              i.unitSize(e.rect.width, !1) +
              '"\r\nandroid:layout_height="' +
              i.unitSize(e.rect.height, !1) +
              '"\r\n'
            );
          }
          t.renderCodeTemplate = function (e) {
            if (!e.css || !e.css.length) return "";
            var t = [
                '<ul class="tab" id="code-tab" >',
                '<li class="icon-css-panel" data-id="css-panel" data-codeType="css"></li>',
                '<li class="icon-android-panel" data-id="android-panel" data-codeType="android" ></li>',
                '<li class="icon-ios-panel" data-id="ios-panel" data-codeType="ios" ></li>',
                "</ul>",
              ].join(""),
              o = [
                '<div id="css-panel" class="code-item item">',
                '<label><textarea id="css" rows="' +
                  (e.css.length + 1) +
                  '" readonly="readonly">' +
                  i.unitCss(e.css).join("\r\n") +
                  "</textarea></label>",
                "</div>",
              ].join(""),
              l = [];
            "text" == e.type
              ? l.push(
                  '<div id="android-panel"  class="code-item item">',
                  '<label><textarea id="css" rows="6" readonly="readonly">&lt;TextView\r\n' +
                    r(e) +
                    'android:text="' +
                    e.content +
                    '"\r\nandroid:textColor="' +
                    e.color["argb-hex"] +
                    '"\r\nandroid:textSize="' +
                    i.unitSize(e.fontSize, !0) +
                    '"\r\n/&gt;</textarea></label>',
                  "</div>"
                )
              : "shape" == e.type
              ? l.push(
                  '<div id="android-panel" class="code-item item">',
                  '<label><textarea id="css" rows="6" readonly="readonly">&lt;View\r\n' +
                    r(e) +
                    (function (e) {
                      var t;
                      if (
                        "shape" != e.type ||
                        void 0 === e.fills ||
                        0 == e.fills.length
                      )
                        return "";
                      for (t in e.fills)
                        if ("color" == e.fills[t].fillType.toLowerCase())
                          return (
                            'android:background="' +
                            e.fills[t].color["argb-hex"] +
                            '"\r\n'
                          );
                      return "";
                    })(e) +
                    "/&gt;</textarea></label>",
                  "</div>"
                )
              : "slice" == e.type &&
                l.push(
                  '<div id="android-panel" class="code-item item">',
                  '<label><textarea id="css" rows="6" readonly="readonly">&lt;ImageView\r\n' +
                    r(e) +
                    (function (e) {
                      return "slice" != e.type || void 0 === e.exportable
                        ? ""
                        : 'android:src="@mipmap/' +
                            e.exportable[0].name +
                            "." +
                            e.exportable[0].format +
                            '"\r\n';
                    })(e) +
                    "/&gt;</textarea></label>",
                  "</div>"
                );
            var s = [];
            return (
              "text" == e.type
                ? s.push(
                    '<div id="ios-panel"  class="code-item item">',
                    '<label><textarea id="css" rows="6" readonly="readonly">UILabel *label = [[UILabel alloc] init];\r\nlabel.frame = CGRectMake(' +
                      n.scaleSize(e.rect.x) +
                      ", " +
                      n.scaleSize(e.rect.y) +
                      ", " +
                      n.scaleSize(e.rect.width) +
                      ", " +
                      n.scaleSize(e.rect.height) +
                      ');\r\nlabel.text = @"' +
                      e.content +
                      '";\r\nlabel.font = [UIFont fontWithName:@"' +
                      e.fontFace +
                      '" size:' +
                      n.scaleSize(e.fontSize) +
                      "];\r\nlabel.textColor = [UIColor colorWithRed:" +
                      e.color.rgb.r +
                      "/255.0 green:" +
                      e.color.rgb.g +
                      "/255.0 blue:" +
                      e.color.rgb.b +
                      "/255.0 alpha:" +
                      e.color.alpha +
                      "/255.0];\r\n</textarea></label>",
                    "</div>"
                  )
                : "shape" == e.type
                ? s.push(
                    '<div id="ios-panel" class="code-item item">',
                    '<label><textarea id="css" rows="6" readonly="readonly">UIView *view = [[UIView alloc] init];\r\nview.frame = CGRectMake(' +
                      n.scaleSize(e.rect.x) +
                      ", " +
                      n.scaleSize(e.rect.y) +
                      ", " +
                      n.scaleSize(e.rect.width) +
                      ", " +
                      n.scaleSize(e.rect.height) +
                      ");\r\n" +
                      (function (e) {
                        var t;
                        if (
                          "shape" != e.type ||
                          void 0 === e.fills ||
                          0 == e.fills.length
                        )
                          return "";
                        for (t in e.fills)
                          if ("color" == e.fills[t].fillType.toLowerCase())
                            return (
                              "view.backgroundColor = [UIColor colorWithRed:" +
                              e.fills[t].color.rgb.r +
                              "/255.0 green:" +
                              e.fills[t].color.rgb.g +
                              "/255.0 blue:" +
                              e.fills[t].color.rgb.b +
                              "/255.0 alpha:" +
                              e.fills[t].color.alpha +
                              "/255.0];\r\n"
                            );
                        return "";
                      })(e) +
                      "</textarea></label>",
                    "</div>"
                  )
                : "slice" == e.type &&
                  s.push(
                    '<div id="ios-panel" class="code-item item">',
                    '<label><textarea id="css" rows="6" readonly="readonly">UIImageView *imageView = [[UIImageView alloc] init];\r\nimageView.frame = CGRectMake(' +
                      n.scaleSize(e.rect.x) +
                      ", " +
                      n.scaleSize(e.rect.y) +
                      ", " +
                      n.scaleSize(e.rect.width) +
                      ", " +
                      n.scaleSize(e.rect.height) +
                      ");\r\n" +
                      (function (e) {
                        return "slice" != e.type || void 0 === e.exportable
                          ? ""
                          : 'imageView.image = [UIImage imageNamed:@"' +
                              e.exportable[0].name +
                              "." +
                              e.exportable[0].format +
                              '"];\r\n';
                      })(e) +
                      "</textarea></label>",
                    "</div>"
                  ),
              a.propertyType(
                "CODE TEMPLATE",
                [
                  t,
                  o,
                  l.join(""),
                  s.join(""),
                  ["<div class='copyAll'>copyAllCode</div>"],
                ].join(""),
                !0
              )
            );
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderProperties = void 0);
          const i = o(0),
            n = o(1),
            a = o(4);
          t.renderProperties = function (e) {
            let t = [
                '<div class="item" data-label="' +
                  i.localize("Position") +
                  ':">',
                '<label data-label="' +
                  i.localize("X") +
                  '"><input id="position-x" type="text" value="' +
                  n.unitSize(e.rect.x) +
                  '" readonly="readonly"></label>',
                '<label data-label="' +
                  i.localize("Y") +
                  '"><input id="position-y" type="text" value="' +
                  n.unitSize(e.rect.y) +
                  '" readonly="readonly"></label>',
                "</div>",
              ].join(""),
              o = [
                '<div class="item" data-label="' + i.localize("Size") + ':">',
                '<label data-label="' +
                  i.localize("Width") +
                  '"><input id="size-width" type="text" value="' +
                  n.unitSize(e.rect.width) +
                  '" readonly="readonly"></label>',
                '<label data-label="' +
                  i.localize("Height") +
                  '"><input id="size-height" type="text" value="' +
                  n.unitSize(e.rect.height) +
                  '" readonly="readonly"></label>',
                "</div>",
              ].join(""),
              r =
                "number" == typeof e.opacity
                  ? [
                      '<div class="item" data-label="' +
                        i.localize("Opacity") +
                        ':">',
                      '<label><input id="opacity" type="text" value="' +
                        Math.round(1e4 * e.opacity) / 100 +
                        '%" readonly="readonly"></label>',
                      "<label></label>",
                      "</div>",
                    ].join("")
                  : "",
              l = e.radius
                ? e.radius.length >= 2
                  ? [
                      '<div class="item" data-label="' +
                        i.localize("Radius") +
                        ':">',
                      '<label><input id="radius" type="text" value="' +
                        n.unitBorderRadius(e.radius, void 0) +
                        '" readonly="readonly"></label>',
                      "</div>",
                    ].join("")
                  : [
                      '<div class="item" data-label="' +
                        i.localize("Radius") +
                        ':">',
                      '<label><input id="radius" type="text" value="' +
                        n.unitBorderRadius(e.radius, void 0) +
                        '" readonly="readonly"></label>',
                      "<label></label>",
                      "</div>",
                    ].join("")
                : "",
              s = e.styleName
                ? [
                    '<div class="item" data-label="' +
                      i.localize("Style") +
                      ':">',
                    '<label><input id="styleName" type="text" value="' +
                      e.styleName +
                      '" readonly="readonly"></label>',
                    "</div>",
                  ].join("")
                : "";
            return a.propertyType("PROPERTIES", [t, o, r, l, s].join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderShadows = void 0);
          const i = o(0),
            n = o(1),
            a = o(4);
          t.renderShadows = function (e) {
            if (!e.shadows || !e.shadows.length) return "";
            var t = [];
            for (let o = e.shadows.length - 1; o >= 0; o--) {
              let r = e.shadows[o];
              t.push(
                '<div class="items-group">',
                "<h4>" + i.localize(r.type + " Shadow") + "</h4>",
                '<div class="item" data-label="' + i.localize("Offset") + ':">',
                '<label data-label="' +
                  i.localize("X") +
                  '"><input id="offset-x" type="text" value="' +
                  n.unitSize(r.offsetX) +
                  '" readonly="readonly"></label>',
                '<label data-label="' +
                  i.localize("Y") +
                  '"><input id="offset-y" type="text" value="' +
                  n.unitSize(r.offsetY) +
                  '" readonly="readonly"></label>',
                "</div>",
                '<div class="item" data-label="' + i.localize("Effect") + ':">',
                '<label data-label="' +
                  i.localize("Blur") +
                  '"><input id="offset-x" type="text" value="' +
                  n.unitSize(r.blurRadius) +
                  '" readonly="readonly"></label>',
                '<label data-label="' +
                  i.localize("Spread") +
                  '"><input id="offset-y" type="text" value="' +
                  n.unitSize(r.spread) +
                  '" readonly="readonly"></label>',
                "</div>",
                '<div class="item" data-label="' + i.localize("Color") + ':">',
                a.colorItem(r.color),
                "</div>",
                "</div>"
              );
            }
            return a.propertyType("SHADOWS", t.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderBorders = void 0);
          const i = o(0),
            n = o(1),
            a = o(4);
          t.renderBorders = function (e) {
            if (!e.borders || !e.borders.length) return "";
            var t = [];
            for (let o = e.borders.length - 1; o >= 0; o--) {
              let r = e.borders[o];
              t.push(
                '<div class="items-group">',
                "<h4>" + i.localize(r.position + " Border") + "</h4>",
                '<div class="item" data-label="' + i.localize("Weight") + ':">',
                '<label><input id="font-family" type="text" value="' +
                  n.unitSize(r.thickness) +
                  '" readonly="readonly"></label>',
                "<label></label>",
                "</div>"
              ),
                t.push(
                  '<div class="item" data-label="' +
                    i.localize(r.fillType) +
                    ':">'
                ),
                "color" == r.fillType.toLowerCase()
                  ? t.push(a.colorItem(r.color))
                  : (t.push('<div class="colors gradient">'),
                    r.gradient.colorStops.forEach((e) =>
                      t.push(a.colorItem(e.color))
                    ),
                    t.push("</div>")),
                t.push("</div>"),
                t.push("</div>");
            }
            return a.propertyType("BORDERS", t.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderFont = void 0);
          const i = o(0),
            n = o(1),
            a = o(4);
          t.renderFont = function (e) {
            if ("text" != e.type) return "";
            var t = [
                '<div class="item" data-label="' + i.localize("Family") + ':">',
                '<label><input id="font-family" type="text" value="' +
                  e.fontFace +
                  '" readonly="readonly"></label>',
                "</div>",
              ].join(""),
              o = [
                '<div class="item" data-label="' + i.localize("Color") + ':">',
                '<div class="color">',
                a.colorItem(e.color),
                "</div>",
                "</div>",
              ].join(""),
              r = e.fontSize
                ? [
                    '<div class="item" data-label="' +
                      i.localize("Size") +
                      ':">',
                    '<label><input id="opacity" type="text" value="' +
                      n.unitSize(e.fontSize, !0) +
                      '" readonly="readonly"></label>',
                    "<label></label>",
                    "</div>",
                  ].join("")
                : "",
              l = [
                '<div class="item" data-label="' +
                  i.localize("Spacing") +
                  ':">',
                '<label data-label="' +
                  i.localize("Character") +
                  '"><input id="letter-spacing" type="text" value="' +
                  n.unitSize(e.letterSpacing, !0) +
                  '" readonly="readonly"></label>',
                '<label data-label="' +
                  i.localize("Line") +
                  '"><input id="line-height" type="text" value="' +
                  (e.lineHeight ? n.unitSize(e.lineHeight, !0) : "Auto") +
                  '" readonly="readonly"></label>',
                "</div>",
              ].join(""),
              s = [
                '<div class="item">',
                '<label data-label="' +
                  i.localize("Content") +
                  '"><textarea id="content" rows="2" readonly="readonly" style="font-family: ' +
                  e.fontFace +
                  ', sans-serif">' +
                  e.content +
                  "</textarea></label>",
                "</div>",
              ].join("");
            return a.propertyType("TYPEFACE", [t, o, r, l, s].join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderExportable = void 0);
          const i = o(4);
          t.renderExportable = function (e) {
            if (!e.exportable || !e.exportable.length) return "";
            var t = [];
            return (
              t.push('<ul class="exportable">'),
              e.exportable.forEach((e) => {
                var o = "assets/" + e.path;
                t.push(
                  "<li>",
                  '<a href="' +
                    o +
                    '"target="_blank" download data-format="' +
                    e.format.toUpperCase() +
                    '"><img class="dragExp" src="' +
                    o +
                    '" alt="' +
                    e.path +
                    '"><img class="thumbExp" src="' +
                    o +
                    '" alt="' +
                    e.path +
                    '">' +
                    e.path.replace("drawable-", "") +
                    "</a>",
                  "</li>"
                );
              }),
              t.push("</ul>"),
              "file:" == document.location.protocol &&
                t.push("按(option)或(alt)点击即可下载"),
              i.propertyType("EXPORTABLE", t.join(""))
            );
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.renderFills = void 0);
          const i = o(0),
            n = o(4);
          t.renderFills = function (e) {
            if (!e.fills || !e.fills.length) return "";
            var t = [];
            let o = e.fills;
            for (let e = o.length - 1; e >= 0; e--) {
              let a = o[e];
              t.push(
                '<div class="item items-group" data-label="' +
                  i.localize(a.fillType) +
                  ':">'
              ),
                "color" == a.fillType.toLowerCase()
                  ? t.push(n.colorItem(a.color))
                  : (t.push('<div class="gradient">'),
                    a.gradient.colorStops.forEach((e) =>
                      t.push(n.colorItem(e.color))
                    ),
                    t.push("</div>")),
                t.push("</div>");
            }
            return n.propertyType("FILLS", t.join(""));
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.unitEvents = void 0);
          const i = o(0),
            n = o(7),
            a = o(17),
            r = o(10),
            l = o(3);
          t.unitEvents = function () {
            let e = document.querySelector("#unit");
            l.eventDelegate(
              e,
              "change",
              "input[name=resolution]",
              function (t) {
                let o = e.querySelector("input[name=resolution]:checked");
                (i.state.unit = o.dataset.unit),
                  (i.state.scale = Number(o.dataset.scale)),
                  n.layers(),
                  a.inspector(),
                  e.blur(),
                  (e.querySelector("p").innerText = o.dataset.name),
                  r.slices();
              }
            ),
              l.eventDelegate(e, "click", "h3, .overlay", function (t) {
                e.blur();
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.noteEvents = void 0);
          const i = o(2),
            n = o(5),
            a = o(3);
          t.noteEvents = function () {
            let e = document.querySelector("#notes");
            document
              .querySelector("#show-notes")
              .addEventListener("change", function () {
                e.style.display = this.checked ? "" : "none";
              }),
              a.eventDelegate(e, "mousemove", ".note", function (e) {
                i.mouseoutLayer(), n.hideDistance();
                let t = this.querySelector("div");
                (t.style.display = ""),
                  t.clientWidth > 160 &&
                    ((t.style.width = "160px"),
                    (t.style.whiteSpace = "normal")),
                  e.stopPropagation();
              }),
              e.addEventListener("mouseout", function (t) {
                e.querySelectorAll(".note div").forEach(
                  (e) => (e.style.display = "none")
                );
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.inspectorEvents = void 0);
          const i = o(0),
            n = o(11),
            a = o(3),
            r = o(1);
          t.inspectorEvents = function () {
            let e = [
                "color-hex",
                "argb-hex",
                "css-rgba",
                "css-hsla",
                "ui-color",
              ],
              t = document.querySelector("#inspector");
            a.eventDelegate(t, "click", ".color label", function (t) {
              let o = (e.indexOf(i.state.colorFormat) + 1) % e.length;
              (i.state.colorFormat = e[o]),
                document.querySelectorAll(".color input").forEach((e) => {
                  let t = JSON.parse(decodeURI(e.dataset.color));
                  e.value = t[i.state.colorFormat];
                }),
                n.colors();
            }),
              a.eventDelegate(t, "dblclick", "input, textarea", function (e) {
                this.select();
              }),
              $(".inspector").mousedown(function () {
                $(".copyAll").click(function () {
                  $(".select #css").select(),
                    document.execCommand("copy"),
                    r.message("---✅ - ( ´´ิ∀´ิ` ) - 复制成功 ---");
                });
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.sliceEvents = void 0);
          const i = o(2),
            n = o(1),
            a = o(0),
            r = o(3);
          t.sliceEvents = function () {
            let e = document.querySelector("#slices");
            r.eventDelegate(e, "mouseover", "li", function (e) {
              document
                .querySelectorAll(".layer-" + this.dataset.objectid)
                .forEach((e) => e.classList.add("has-slice"));
            }),
              r.eventDelegate(e, "mouseout", "li", function (e) {
                document
                  .querySelectorAll(".has-slice")
                  .forEach((e) => e.classList.remove("has-slice"));
              }),
              r.eventDelegate(e, "click", "li", function (e) {
                let t = ".layer-" + this.dataset.objectid,
                  o = document.querySelectorAll(t),
                  r = o[0];
                if (!o.length)
                  return void n.message(
                    a.localize("The slice not in current artboard.")
                  );
                let l = r.getBoundingClientRect(),
                  s = document.querySelector(".screen-viewer"),
                  c = s.scrollLeft,
                  d = s.scrollTop,
                  u = r.clientWidth,
                  p = r.clientHeight,
                  h = s.clientWidth,
                  v = s.clientHeight;
                (s.scrollLeft = l.left + c - (h - u) / 2),
                  (s.scrollTop = l.top + d - 60 - (v - p) / 2),
                  i.clickElement(r);
              });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.percentageModeEvents = void 0),
            (t.percentageModeEvents = function () {
              window.addEventListener("keydown", (e) => {
                18 === e.which &&
                  (document
                    .getElementById("screen")
                    .classList.add("percentage-mode"),
                  e.preventDefault());
              }),
                window.addEventListener("keyup", (e) => {
                  18 === e.which &&
                    (document
                      .getElementById("screen")
                      .classList.remove("percentage-mode"),
                    e.preventDefault());
                });
            });
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.keyboardZoomEvents = void 0);
          const i = o(2),
            n = o(0),
            a = o(19);
          t.keyboardZoomEvents = function () {
            window.addEventListener("keydown", (e) => {
              if (e.ctrlKey || e.metaKey)
                switch (e.which) {
                  case 187:
                    return (
                      n.state.zoom < 4 &&
                        i.clickElement(document.querySelector(".zoom-out")),
                      e.preventDefault(),
                      !1
                    );
                  case 189:
                    return (
                      n.state.zoom > 0.25 &&
                        i.clickElement(document.querySelector(".zoom-in")),
                      e.preventDefault(),
                      !1
                    );
                  case 48:
                    return a.zoomRender(1), e.preventDefault(), !1;
                }
            });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.keyboardSwitchEvents = void 0);
          const i = o(2);
          t.keyboardSwitchEvents = function () {
            window.addEventListener("keydown", (e) => {
              switch (String.fromCharCode(e.which)) {
                case "F":
                  return (
                    i.clickElement(document.querySelector("#flow-mode")),
                    e.preventDefault(),
                    !1
                  );
                case "N":
                  return (
                    i.clickElement(document.querySelector("#show-notes")),
                    e.preventDefault(),
                    !1
                  );
              }
            });
          };
        },
        function (e, t, o) {
          "use strict";
          Object.defineProperty(t, "__esModule", { value: !0 }),
            (t.allAtlasMethod = void 0);
          const i = o(0);
          t.allAtlasMethod = function () {
            function e() {
              if ($(".navbar").hasClass("open")) {
                $("header").css("display", "none");
                var e = $(".artboard"),
                  t = $(".section-view"),
                  o = [],
                  n = $(e).outerWidth(!0),
                  a = i.project.artboards.length,
                  r = parseInt(($(t).width() / n).toString()),
                  l = parseInt($(t).width().toString()) - n * r;
                a < r && (l = parseInt($(t).width().toString()) - n * a);
                for (var s = 0; s < r; s++) o[s] = 0;
                $(e).each(function () {
                  if ("none" !== $(this).css("display")) {
                    for (var e = o[0], t = 0, i = 0; i < r; i++)
                      o[i] < e && ((e = o[i]), (t = i));
                    $(this).css({ left: l / 2 + t * n, top: e }),
                      $(this)
                        .children("picture")
                        .css({ display: "block", opacity: "1" }),
                      (o[t] += $(this).outerHeight(!0));
                  }
                });
              }
            }
            "open" == sessionStorage.getItem("navbar") &&
              $(".navbar").addClass("open"),
              $(".muser").click(function () {
                $(".navbar").addClass("open"),
                  sessionStorage.setItem("navbar", "open");
                let t = setInterval(e, 100);
                setTimeout(function () {
                  clearInterval(t);
                }, 1e3),
                  o();
              }),
              $(".artboard").click(function () {
                $(".navbar").removeClass("open"),
                  $(".icon-artboards").addClass("current"),
                  sessionStorage.setItem("navbar", "cleos"),
                  $("picture").css({ display: "", opacity: "" }),
                  $("header").css("display", ""),
                  o();
              });
            let t = setInterval(e, 300);
            function o() {
              setTimeout(function () {
                let e = $(".artboard-list > .active").offset().top,
                  t = $(".section-view");
                if (0 < e && e < t.height());
                else {
                  let o = e - t.height() / 2;
                  t.scrollTop(o + t.scrollTop());
                }
              }, 600);
            }
            $(window).on("load", function () {
              setTimeout(function () {
                clearInterval(t);
              }, 1e3);
            }),
              setTimeout(function () {
                clearInterval(t);
              }, 1e4),
              $(window).on("resize", function () {
                e(), o();
              }),
              o(),
              $(".page-list > li > label").click(() => {
                let t = setInterval(e, 100);
                setTimeout(function () {
                  clearInterval(t);
                }, 1e3);
              });
          };
        },
      ]);
    </script>
    <script src="https://hubzyy.gitee.io/sketch-meaxure/src/index.js"></script>
    <link
      rel="stylesheet"
      href="https://hubzyy.gitee.io/sketch-meaxure/src/index.css"
    />
  </head>
  <body id="app">
    <script>
      let data = {
        resolution: 1,
        unit: "px",
        colorFormat: "color-hex",
        artboards: [
          {
            notes: [],
            layers: [
              {
                objectID: "4663F80F-7D97-4DA0-8881-D7BA919F1391",
                type: "shape",
                name: "矩形",
                rect: { x: 0, y: 751, width: 1920, height: 745 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                radius: [0],
                borders: [],
                fills: [
                  {
                    fillType: "Color",
                    color: {
                      rgb: { r: 40, g: 115, b: 249 },
                      hsl: { h: 219, s: 95, l: 57 },
                      alpha: 255,
                      "color-hex": "#2873F9 100%",
                      "argb-hex": "#FF2873F9",
                      "rgba-hex": "#2873F9FF",
                      "css-rgba": "rgba(40,115,249,1)",
                      "css-hsla": "hsla(219,95%,57%,1)",
                      "ui-color": "(r:40.00 g:115.00 b:249.00 a:1.00)",
                    },
                    gradient: {},
                  },
                ],
                styleName: "",
                css: ["background: #2873F9;"],
              },
              {
                objectID: "EFA71496-B763-4A03-872B-B7AF7112DD60",
                type: "slice",
                name: "banner-bg",
                rect: { x: 0, y: 0, width: 1920, height: 753 },
                css: [],
                exportable: [
                  { name: "banner-bg", format: "png", path: "banner-bg.png" },
                ],
              },
              {
                objectID: "36147CCB-AE06-4BDE-84C6-55803381C106",
                type: "slice",
                name: "banner-title",
                rect: { x: 640, y: 52, width: 640, height: 440.1415836392267 },
                css: [],
                exportable: [
                  {
                    name: "banner-title",
                    format: "png",
                    path: "banner-title.png",
                  },
                ],
              },
              {
                objectID: "A098FFF7-9EE1-468F-82A9-0B9A17EC5774",
                type: "slice",
                name: "left",
                rect: {
                  x: 243.9500000000004,
                  y: 1250.474999999999,
                  width: 230.425,
                  height: 132.2750000000001,
                },
                css: [],
                exportable: [{ name: "left", format: "png", path: "left.png" }],
              },
              {
                objectID: "65524739-CCF6-48ED-918D-CD98AF3092C6",
                type: "slice",
                name: "right",
                rect: {
                  x: 1445.95,
                  y: 1250.474999999999,
                  width: 230.42499999999995,
                  height: 132.2750000000001,
                },
                css: ["transform: scaleX(-1);"],
                exportable: [
                  { name: "right", format: "png", path: "right.png" },
                ],
              },
              {
                objectID: "A03BEDDB-5F37-4949-A688-1D39519DE993",
                type: "slice",
                name: "part1-bg",
                rect: { x: 424, y: 678, width: 1072, height: 698 },
                css: [],
                exportable: [
                  { name: "part1-bg", format: "png", path: "part1-bg.png" },
                ],
              },
              {
                objectID: "BDC2244D-2A45-4927-9101-4974EF14FEC5",
                type: "text",
                name: "精品好课，助力备赛；就业辅导，直通名企",
                rect: { x: 770, y: 781, width: 380, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "精品好课，助力备赛；就业辅导，直通名企",
                color: {
                  rgb: { r: 236, g: 104, b: 83 },
                  hsl: { h: 7, s: 80, l: 63 },
                  alpha: 255,
                  "color-hex": "#EC6853 100%",
                  "argb-hex": "#FFEC6853",
                  "rgba-hex": "#EC6853FF",
                  "css-rgba": "rgba(236,104,83,1)",
                  "css-hsla": "hsla(7,80%,63%,1)",
                  "ui-color": "(r:236.00 g:104.00 b:83.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #EC6853;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "AE4FECA2-9E6E-447C-8BAA-973DDC9C55BC",
                type: "slice",
                name: "small-left",
                rect: {
                  x: 738.0000000000018,
                  y: 789.9999999999982,
                  width: 16.055022730994324,
                  height: 10.666666666667538,
                },
                css: ["background: #EC6853;"],
                exportable: [
                  { name: "small-left", format: "png", path: "small-left.png" },
                ],
              },
              {
                objectID: "9030FC1B-77E4-4EFF-A9FE-E3127326CE71",
                type: "slice",
                name: "small- right",
                rect: {
                  x: 1165.944977269004,
                  y: 789.9999999999982,
                  width: 16.055022730994324,
                  height: 10.666666666667538,
                },
                css: ["transform: scaleX(-1);", "background: #EC6853;"],
                exportable: [
                  {
                    name: "small- right",
                    format: "png",
                    path: "small- right.png",
                  },
                ],
              },
              {
                objectID: "398D6166-3BE9-48D5-9918-DBF567529915",
                type: "group",
                name: "编组",
                rect: {
                  x: 738.0000000000018,
                  y: 781,
                  width: 443.9999999999966,
                  height: 28,
                },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "8D3FA9D7-43D5-42F1-BEF9-CA07767E19B8",
                type: "slice",
                name: "icon1",
                rect: { x: 538, y: 848.6269210189021, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon1", format: "png", path: "icon1.png" },
                ],
              },
              {
                objectID: "3828CE86-B54C-43EC-AF51-B3590B56F308",
                type: "text",
                name: "赛事特训",
                rect: { x: 528, y: 923, width: 80, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "赛事特训",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "F6D5857D-E8ED-415E-B88B-1F322D3275FE",
                type: "text",
                name: "真题详解、模拟实战",
                rect: { x: 475, y: 961, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "真题详解、模拟实战",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "8F22507D-79B1-4093-B392-1ACCB48732A5",
                type: "group",
                name: "编组 7",
                rect: {
                  x: 475,
                  y: 848.6269210189021,
                  width: 187,
                  height: 136.37307898109793,
                },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "28C1E980-6671-40FB-86E4-494826748A32",
                type: "slice",
                name: "icon2",
                rect: { x: 799, y: 848.6269210189021, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon2", format: "png", path: "icon2.png" },
                ],
              },
              {
                objectID: "3DB311A4-C0C3-4C25-A58A-E69B166FF45B",
                type: "text",
                name: "20+畅销书籍课",
                rect: { x: 760.5, y: 923, width: 137, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "20+畅销书籍课",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "630CC988-7154-41D6-B2F7-8FF9E2531BC1",
                type: "text",
                name: "权威书籍，价值千元",
                rect: { x: 736, y: 961, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "权威书籍，价值千元",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "5E51CA0E-43A5-4D9F-8AD1-A2788E51E8D2",
                type: "group",
                name: "编组 7",
                rect: {
                  x: 736,
                  y: 848.6269210189021,
                  width: 187,
                  height: 136.37307898109793,
                },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "DF07D1A5-2BB8-4AC2-AA40-28A8CB785603",
                type: "slice",
                name: "icon3",
                rect: { x: 1060, y: 848.6269210189021, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon3", format: "png", path: "icon3.png" },
                ],
              },
              {
                objectID: "112C61D9-206E-4874-AEFC-6F816FE0E9FD",
                type: "text",
                name: "200+企业级项目",
                rect: { x: 1015.5, y: 923, width: 149, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "200+企业级项目",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "7166799F-5AB5-4EBB-B88F-D7AE3287001F",
                type: "text",
                name: "聚焦业务，助力晋升",
                rect: { x: 997, y: 961, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "聚焦业务，助力晋升",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "BC831621-59ED-4F0A-8D05-29FA0A14801C",
                type: "group",
                name: "编组 7",
                rect: {
                  x: 997,
                  y: 848.6269210189021,
                  width: 187,
                  height: 136.37307898109793,
                },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "F0CB133B-BAAC-480B-BC23-2605BE8BFC58",
                type: "slice",
                name: "icon4",
                rect: { x: 1322, y: 848.6269210189021, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon4", format: "png", path: "icon4.png" },
                ],
              },
              {
                objectID: "B3472157-0E0A-4A68-A469-63A10D75765C",
                type: "text",
                name: "工程师养成计划",
                rect: { x: 1281, y: 923, width: 140, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "工程师养成计划",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "28F2A0E6-4C31-439F-8147-3F368559902D",
                type: "text",
                name: "职场菜鸟，晋升必",
                rect: { x: 1258, y: 961, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "职场菜鸟，晋升必",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "40AE59AD-0555-4669-8B0D-9AE5C172F49F",
                type: "group",
                name: "编组 7",
                rect: {
                  x: 1258,
                  y: 848.6269210189021,
                  width: 187,
                  height: 136.37307898109793,
                },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "EABBF874-68E7-44D1-AE7E-2ACF0D898C6F",
                type: "slice",
                name: "icon5",
                rect: { x: 539, y: 1025, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon5", format: "png", path: "icon5.png" },
                ],
              },
              {
                objectID: "CF96E022-AE56-48DB-A8E2-16735EDFA2CA",
                type: "text",
                name: "硬核实习",
                rect: { x: 528, y: 1099, width: 80, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "硬核实习",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "AF343CCE-0E83-47FA-91B4-39E87C9BAF39",
                type: "text",
                name: "到达百楼，可享推荐实习1次",
                rect: { x: 469, y: 1137, width: 199, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "到达百楼，可享推荐实习1次",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "DA945AF5-B69C-475C-9AD9-DB9EBA743A5A",
                type: "group",
                name: "编组 7",
                rect: { x: 469, y: 1025, width: 199, height: 136 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "97AE6E4D-B3C2-4AD4-973A-29493935837A",
                type: "slice",
                name: "icon6",
                rect: { x: 799, y: 1025, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon6", format: "png", path: "icon6.png" },
                ],
              },
              {
                objectID: "2B1ED688-7DF4-410E-9C23-C6F45F5C9A1D",
                type: "text",
                name: "就业辅导",
                rect: { x: 789, y: 1099, width: 80, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "就业辅导",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "C708102A-5732-4AE5-B9C8-780595A88115",
                type: "text",
                name: "精准辅导，质量就业",
                rect: { x: 736, y: 1137, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "精准辅导，质量就业",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "C39B4B51-1FDB-414D-A944-53675439DE77",
                type: "group",
                name: "编组 7",
                rect: { x: 736, y: 1025, width: 187, height: 136 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "30719B0B-0D3F-42C3-AD52-045E71A1B016",
                type: "slice",
                name: "btn1",
                rect: { x: 671, y: 1221, width: 579, height: 95 },
                css: [],
                exportable: [{ name: "btn1", format: "png", path: "btn1.png" }],
              },
              {
                objectID: "0F35E51B-E0D4-4FFB-BC85-C8AC7A1E4A38",
                type: "slice",
                name: "hand",
                rect: { x: 942, y: 1295, width: 38, height: 45 },
                css: [],
                exportable: [{ name: "hand", format: "png", path: "hand.png" }],
              },
              {
                objectID: "E7EE495F-9230-4203-A1D7-AE6D43C38BA1",
                type: "slice",
                name: "icon7",
                rect: { x: 1061, y: 1025, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon7", format: "png", path: "icon7.png" },
                ],
              },
              {
                objectID: "F1625795-B261-467E-B9A8-773F73ADF3F5",
                type: "text",
                name: "170+基础编程语言课",
                rect: { x: 994.5, y: 1099, width: 191, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "170+基础编程语言课 ",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "35D486BA-48BC-44D4-9410-83555C189E16",
                type: "text",
                name: "C语言、Java、Python 等",
                rect: { x: 997, y: 1137, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "C语言、Java、Python 等",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "F582942E-E458-4FF7-8FFC-C60A0FA719A2",
                type: "group",
                name: "编组 7",
                rect: { x: 994.5, y: 1025, width: 191, height: 136 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "9F6BFCD8-BD25-4605-B2EB-D319B5691594",
                type: "slice",
                name: "icon8",
                rect: { x: 1321, y: 1025, width: 60, height: 60 },
                css: [],
                exportable: [
                  { name: "icon8", format: "png", path: "icon8.png" },
                ],
              },
              {
                objectID: "C78ADA1B-48F5-4E40-BA3F-E274267D039A",
                type: "text",
                name: "保存开发环境",
                rect: { x: 1291, y: 1099, width: 120, height: 28 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "保存开发环境",
                color: {
                  rgb: { r: 51, g: 51, b: 51 },
                  hsl: { h: 0, s: 0, l: 20 },
                  alpha: 255,
                  "color-hex": "#333333 100%",
                  "argb-hex": "#FF333333",
                  "rgba-hex": "#333333FF",
                  "css-rgba": "rgba(51,51,51,1)",
                  "css-hsla": "hsla(0,0%,20%,1)",
                  "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
                },
                fontSize: 20,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: null,
                css: [
                  "font-family: PingFangSC-Semibold;",
                  "font-size: 20px;",
                  "color: #333333;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "font-weight: 600;",
                ],
              },
              {
                objectID: "A30D632D-77FB-4CB9-A56B-0B06EB47EAE9",
                type: "text",
                name: "随到随学，即开即用",
                rect: { x: 1258, y: 1137, width: 187, height: 24 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                borders: [],
                fills: [],
                styleName: "",
                content: "随到随学，即开即用",
                color: {
                  rgb: { r: 102, g: 102, b: 102 },
                  hsl: { h: 0, s: 0, l: 40 },
                  alpha: 255,
                  "color-hex": "#666666 100%",
                  "argb-hex": "#FF666666",
                  "rgba-hex": "#666666FF",
                  "css-rgba": "rgba(102,102,102,1)",
                  "css-hsla": "hsla(0,0%,40%,1)",
                  "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
                },
                fontSize: 16,
                fontFace: "PingFang SC",
                textAlign: "center",
                letterSpacing: 0,
                lineHeight: 24,
                css: [
                  "font-family: PingFangSC-Regular;",
                  "font-size: 16px;",
                  "color: #666666;",
                  "letter-spacing: 0;",
                  "text-align: center;",
                  "line-height: 24px;",
                  "font-weight: 400;",
                ],
              },
              {
                objectID: "E5268214-1E10-472C-AB38-90B3DF16E256",
                type: "group",
                name: "编组 7",
                rect: { x: 1258, y: 1025, width: 187, height: 136 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "C3256C2C-C748-4395-9012-665532FF1E67",
                type: "group",
                name: "1",
                rect: { x: 424, y: 678, width: 1072, height: 698 },
                shadows: [],
                rotation: 0,
                opacity: 1,
                css: [],
              },
              {
                objectID: "811A4013-9622-4AA6-84B8-CAF2E74D5BAE",
                type: "slice",
                name: "label",
                rect: { x: 606, y: 1021, width: 54, height: 20 },
                css: [],
                exportable: [
                  { name: "label", format: "png", path: "label.png" },
                ],
              },
            ],
            pageName: "活动页",
            pageObjectID: "BCB9A753-2CE5-47AC-8872-88134FCABF2D",
            name: "pc-开学季601",
            slug: "活动页-13-pc-开学季601",
            objectID: "A036C9BE-0D41-4A33-B7FB-45A407BC1F21",
            width: 1920,
            height: 1496,
            flowStartPoint: false,
            imagePath:
              "preview/%E6%B4%BB%E5%8A%A8%E9%A1%B5-13-pc-%E5%BC%80%E5%AD%A6%E5%AD%A3601.png",
            imageIconPath:
              "preview/icons/%E6%B4%BB%E5%8A%A8%E9%A1%B5-13-pc-%E5%BC%80%E5%AD%A6%E5%AD%A3601.png",
          },
        ],
        slices: [
          {
            name: "banner-bg",
            objectID: "EFA71496-B763-4A03-872B-B7AF7112DD60",
            rect: { x: 0, y: 0, width: 1920, height: 753 },
            exportable: [
              { name: "banner-bg", format: "png", path: "banner-bg.png" },
            ],
          },
          {
            name: "banner-title",
            objectID: "36147CCB-AE06-4BDE-84C6-55803381C106",
            rect: { x: 640, y: 52, width: 640, height: 440.1415836392267 },
            exportable: [
              { name: "banner-title", format: "png", path: "banner-title.png" },
            ],
          },
          {
            name: "left",
            objectID: "A098FFF7-9EE1-468F-82A9-0B9A17EC5774",
            rect: {
              x: 243.9500000000004,
              y: 1250.474999999999,
              width: 230.425,
              height: 132.2750000000001,
            },
            exportable: [{ name: "left", format: "png", path: "left.png" }],
          },
          {
            name: "right",
            objectID: "65524739-CCF6-48ED-918D-CD98AF3092C6",
            rect: {
              x: 1445.95,
              y: 1250.474999999999,
              width: 230.42499999999995,
              height: 132.2750000000001,
            },
            exportable: [{ name: "right", format: "png", path: "right.png" }],
          },
          {
            name: "part1-bg",
            objectID: "A03BEDDB-5F37-4949-A688-1D39519DE993",
            rect: { x: 424, y: 678, width: 1072, height: 698 },
            exportable: [
              { name: "part1-bg", format: "png", path: "part1-bg.png" },
            ],
          },
          {
            name: "small-left",
            objectID: "AE4FECA2-9E6E-447C-8BAA-973DDC9C55BC",
            rect: {
              x: 738.0000000000018,
              y: 789.9999999999982,
              width: 16.055022730994324,
              height: 10.666666666667538,
            },
            exportable: [
              { name: "small-left", format: "png", path: "small-left.png" },
            ],
          },
          {
            name: "small- right",
            objectID: "9030FC1B-77E4-4EFF-A9FE-E3127326CE71",
            rect: {
              x: 1165.944977269004,
              y: 789.9999999999982,
              width: 16.055022730994324,
              height: 10.666666666667538,
            },
            exportable: [
              { name: "small- right", format: "png", path: "small- right.png" },
            ],
          },
          {
            name: "icon1",
            objectID: "8D3FA9D7-43D5-42F1-BEF9-CA07767E19B8",
            rect: { x: 538, y: 848.6269210189021, width: 60, height: 60 },
            exportable: [{ name: "icon1", format: "png", path: "icon1.png" }],
          },
          {
            name: "icon2",
            objectID: "28C1E980-6671-40FB-86E4-494826748A32",
            rect: { x: 799, y: 848.6269210189021, width: 60, height: 60 },
            exportable: [{ name: "icon2", format: "png", path: "icon2.png" }],
          },
          {
            name: "icon3",
            objectID: "DF07D1A5-2BB8-4AC2-AA40-28A8CB785603",
            rect: { x: 1060, y: 848.6269210189021, width: 60, height: 60 },
            exportable: [{ name: "icon3", format: "png", path: "icon3.png" }],
          },
          {
            name: "icon4",
            objectID: "F0CB133B-BAAC-480B-BC23-2605BE8BFC58",
            rect: { x: 1322, y: 848.6269210189021, width: 60, height: 60 },
            exportable: [{ name: "icon4", format: "png", path: "icon4.png" }],
          },
          {
            name: "icon5",
            objectID: "EABBF874-68E7-44D1-AE7E-2ACF0D898C6F",
            rect: { x: 539, y: 1025, width: 60, height: 60 },
            exportable: [{ name: "icon5", format: "png", path: "icon5.png" }],
          },
          {
            name: "icon6",
            objectID: "97AE6E4D-B3C2-4AD4-973A-29493935837A",
            rect: { x: 799, y: 1025, width: 60, height: 60 },
            exportable: [{ name: "icon6", format: "png", path: "icon6.png" }],
          },
          {
            name: "btn1",
            objectID: "30719B0B-0D3F-42C3-AD52-045E71A1B016",
            rect: { x: 671, y: 1221, width: 579, height: 95 },
            exportable: [{ name: "btn1", format: "png", path: "btn1.png" }],
          },
          {
            name: "hand",
            objectID: "0F35E51B-E0D4-4FFB-BC85-C8AC7A1E4A38",
            rect: { x: 942, y: 1295, width: 38, height: 45 },
            exportable: [{ name: "hand", format: "png", path: "hand.png" }],
          },
          {
            name: "icon7",
            objectID: "E7EE495F-9230-4203-A1D7-AE6D43C38BA1",
            rect: { x: 1061, y: 1025, width: 60, height: 60 },
            exportable: [{ name: "icon7", format: "png", path: "icon7.png" }],
          },
          {
            name: "icon8",
            objectID: "9F6BFCD8-BD25-4605-B2EB-D319B5691594",
            rect: { x: 1321, y: 1025, width: 60, height: 60 },
            exportable: [{ name: "icon8", format: "png", path: "icon8.png" }],
          },
          {
            name: "label",
            objectID: "811A4013-9622-4AA6-84B8-CAF2E74D5BAE",
            rect: { x: 606, y: 1021, width: 54, height: 20 },
            exportable: [{ name: "label", format: "png", path: "label.png" }],
          },
        ],
        colors: [
          {
            name: "666666",
            color: {
              rgb: { r: 102, g: 102, b: 102 },
              hsl: { h: 0, s: 0, l: 40 },
              alpha: 255,
              "color-hex": "#666666 100%",
              "argb-hex": "#FF666666",
              "rgba-hex": "#666666FF",
              "css-rgba": "rgba(102,102,102,1)",
              "css-hsla": "hsla(0,0%,40%,1)",
              "ui-color": "(r:102.00 g:102.00 b:102.00 a:1.00)",
            },
          },
          {
            name: "333333",
            color: {
              rgb: { r: 51, g: 51, b: 51 },
              hsl: { h: 0, s: 0, l: 20 },
              alpha: 255,
              "color-hex": "#333333 100%",
              "argb-hex": "#FF333333",
              "rgba-hex": "#333333FF",
              "css-rgba": "rgba(51,51,51,1)",
              "css-hsla": "hsla(0,0%,20%,1)",
              "ui-color": "(r:51.00 g:51.00 b:51.00 a:1.00)",
            },
          },
          {
            name: "FF4C4C",
            color: {
              rgb: { r: 255, g: 76, b: 76 },
              hsl: { h: 0, s: 100, l: 65 },
              alpha: 255,
              "color-hex": "#FF4C4C 100%",
              "argb-hex": "#FFFF4C4C",
              "rgba-hex": "#FF4C4CFF",
              "css-rgba": "rgba(255,76,76,1)",
              "css-hsla": "hsla(0,100%,65%,1)",
              "ui-color": "(r:255.00 g:76.00 b:76.00 a:1.00)",
            },
          },
          {
            name: "2C68FF",
            color: {
              rgb: { r: 44, g: 104, b: 255 },
              hsl: { h: 224, s: 100, l: 59 },
              alpha: 255,
              "color-hex": "#2C68FF 100%",
              "argb-hex": "#FF2C68FF",
              "rgba-hex": "#2C68FFFF",
              "css-rgba": "rgba(44,104,255,1)",
              "css-hsla": "hsla(224,100%,59%,1)",
              "ui-color": "(r:44.00 g:104.00 b:255.00 a:1.00)",
            },
          },
          {
            name: "纯色蓝",
            color: {
              rgb: { r: 46, g: 126, b: 238 },
              hsl: { h: 215, s: 85, l: 56 },
              alpha: 255,
              "color-hex": "#2E7EEE 100%",
              "argb-hex": "#FF2E7EEE",
              "rgba-hex": "#2E7EEEFF",
              "css-rgba": "rgba(46,126,238,1)",
              "css-hsla": "hsla(215,85%,56%,1)",
              "ui-color": "(r:46.00 g:126.00 b:238.00 a:1.00)",
            },
          },
          {
            name: "FF5905",
            color: {
              rgb: { r: 255, g: 89, b: 5 },
              hsl: { h: 19, s: 100, l: 51 },
              alpha: 255,
              "color-hex": "#FF5905 100%",
              "argb-hex": "#FFFF5905",
              "rgba-hex": "#FF5905FF",
              "css-rgba": "rgba(255,89,5,1)",
              "css-hsla": "hsla(19,100%,51%,1)",
              "ui-color": "(r:255.00 g:89.00 b:5.00 a:1.00)",
            },
          },
        ],
        languages: {
          "zh-cn": {
            Coordinate: "坐标",
            Overlay: "高亮区域",
            "Top Width": "宽度-顶部",
            "Middle Width": "宽度-居中",
            "Bottom Width": "宽度-底部",
            "Left Height": "高度-左侧",
            "Center Height": "高度-居中",
            "Right Height": "高度-右侧",
            "Vertical Distance": "垂直间距",
            "Top Spacing": "上边距",
            "Bottom Spacing": "下边距",
            "Horizontal Distance": "水平间距",
            "Left Spacing": "左边距",
            "Right Spacing": "右边距",
            "Label on top": "标记-顶部",
            "Label on right": "标记-右侧",
            "Make Note": "备注",
            "Label on bottom": "标记-底部",
            "Label on left": "标记-左侧",
            Influence: "影响范围",
            "Sizing by influence": "根据影响范围标记尺寸",
            Percentage: "百分比",
            "Sizing by percentage": "标记百分比尺寸",
            "Toggle Hidden": "切换可见",
            "Toggle Locked": "切换锁定",
            "Clean Marks": "清除选定区域或全部标注",
            Settings: "设置",
            "Design resolution": "设计分辨率",
            "Unit switch": "切换单位",
            "Device switch": "切换设备",
            "Convert to pixels": "转换为像素值",
            "Convert to rem": "转换为 rem 值",
            FLOW: "原型模式",
            NOTES: "备注",
            PROPERTIES: "属性",
            FILLS: "填充",
            TYPEFACE: "字体",
            BORDERS: "边框",
            SHADOWS: "阴影",
            "CSS STYLE": "CSS 样式",
            "CODE TEMPLATE": "代码模板",
            EXPORTABLE: "导出",
            Gradient: "渐变",
            Color: "颜色",
            "Layer Name": "图层名称",
            Weight: "粗细",
            "Style name": "样式名称",
            Custom: "自定义",
            Standard: "标准像素",
            "iOS Devices": "iOS 设备",
            Points: "标准点",
            Retina: "视网膜",
            "Retina HD": "高清视网膜",
            "Android Devices": "安卓设备",
            "Other Devices": "其他设备",
            "Ubuntu Grid": "Ubuntu 网格",
            "Web View": "网页",
            Scale: "倍率",
            Units: "单位",
            "Device Unit": "设备单位",
            "Design Resolution": "设计分辨率",
            "%@px on Sketch = 1%@ on device": "%@px Sketch = 1%@ 设备",
            "Color format": "颜色格式",
            "Color hex": "色值",
            "ARGB hex": "安卓色值",
            "Artboard order": "画板排序",
            "Order by artboard rows": "按画板行排序",
            "Order by artboard columns": "按画板列排序",
            "Order by alphabet": "按名称排序",
            "Order by layer order": "按图层顺序",
            Positive: "正序",
            Reverse: "逆序",
            Save: "保存",
            Width: "宽度",
            Height: "高度",
            Top: "上面",
            Right: "右侧",
            Bottom: "下面",
            Left: "左侧",
            "Fill / Color": "填充 / 颜色",
            Border: "边框",
            Opacity: "不透明度",
            Radius: "圆角",
            Shadow: "外(内)阴影",
            Style: "样式名称",
            "Font size": "字号",
            Line: "行高",
            Typeface: "字体",
            Character: "字间距",
            Paragraph: "段落间距",
            "Percentage of artboard": "基于画板百分比单位",
            Mark: "标注",
            All: "全选",
            None: "全不选",
            "Select filtered": "选中过滤的",
            "Selection of Sketch": "Sketch 的选中画板",
            "Current of Sketch": "Sketch 的当前画板",
            Filter: " 过滤",
            Export: "导出",
            "Select an export preset": "选择导出预设",
            "Create Symbol": "创建为组件",
            Position: "位置",
            Size: "大小",
            Family: "字体",
            Spacing: "空间",
            Content: "内容",
            "All artboards": "全部画板",
            "Start points": "起点画板",
            "No slices added!": "未添加切图",
            "No color names added!": "未添加颜色名称",
            "Select 1 or 2 layers to mark!": "请选中 1 至 2 个图层!",
            "Select a text layer to mark!": "请选中 1 个文本图层!",
            "Select a layer to mark!": "请选中 1 个图层!",
            "Select any layer to mark!": "请选中任意个图层!",
            "Export spec": "导出规范",
            "Export to:": "导出到:",
            "Exporting...": "导出中...",
            "Please wait for former task to exit": "请等待先前的任务完成",
            "Cancelled by user": "用户取消了任务",
            "Export complete! Takes %@ seconds": "导出完成! 耗时 %@ 秒",
            "The slice not in current artboard.": "切图不在当前画板",
            "Inside Border": "内边框",
            "Outside Border": "外边框",
            "Center Border": "中心边框",
            "Inner Shadow": "内阴影",
            "Outer Shadow": "外阴影",
            Offset: "偏移",
            Effect: "效果",
            Blur: "模糊",
            Spread: "扩散",
            "No artboards!": "没有画板",
            "You need add some artboards.": "您需要添加一些画板",
            "No colors added!": "没有定义颜色",
            "Select a layer to add exportable!": "请选中 1 个图层!",
            "Import complete!": "导入完成!",
            "Processing layer %@ of %@": "图层处理中... %@ / %@",
            "Advanced mode": "高级模式",
            "Export layer influence rect": "导出图层的影响尺寸",
            "Keyboard shortcut": "快捷键",
            default: "默认",
            "Slice with Padding": "填充内边距",
            "Enter padding (e.g: 10, or 10;10;10;10)":
              "输入填充 (例如: 10, 或者 10;10;10;10)",
          },
          "zh-tw": {
            Coordinate: "坐標",
            Overlay: "高亮區域",
            "Top Width": "寬度-頂部",
            "Middle Width": "寬度-居中",
            "Bottom Width": "寬度-底部",
            "Left Height": "高度-左側",
            "Center Height": "高度-居中",
            "Right Height": "高度-右側",
            "Vertical Distance": "垂直間距",
            "Top Spacing": "上邊距",
            "Bottom Spacing": "下邊距",
            "Horizontal Distance": "水平間距",
            "Left Spacing": "左邊距",
            "Right Spacing": "右邊距",
            "Label on top": "標記-頂部",
            "Label on right": "標記-右側",
            "Make Note": "備註",
            "Label on bottom": "標記-底部",
            "Label on left": "標記-左側",
            Influence: "影響範圍",
            "Sizing by influence": "根據影響範圍標記尺寸",
            Percentage: "百分比",
            "Sizing by percentage": "標記百分比尺寸",
            "Toggle Hidden": "切換可見",
            "Toggle Locked": "切換鎖定",
            "Clean Marks": "清除選定區域或所有標註",
            Settings: "設置",
            "Design resolution": "設計解析度",
            "Unit switch": "切換單位",
            "Device switch": "切換裝置",
            "Convert to pixels": "轉換為像素值",
            "Convert to rem": "轉換為 rem 值",
            FLOW: "原型模式",
            NOTES: "筆記",
            PROPERTIES: "屬性",
            FILLS: "填色",
            TYPEFACE: "字體",
            BORDERS: "邊框",
            SHADOWS: "陰影",
            "CSS STYLE": "CSS 樣式",
            "CODE TEMPLATE": "代碼模板",
            EXPORTABLE: "匯出",
            Gradient: "漸層",
            Color: "色彩",
            "Layer Name": "圖層名稱",
            Weight: "粗細",
            "Style name": "樣式名稱",
            Custom: "自定",
            Standard: "標準像素",
            "iOS Devices": "iOS 裝置",
            Points: "Points",
            Retina: "Retina",
            "Retina HD": "Retina HD",
            "Android Devices": "Android 裝置",
            "Other Devices": "其他裝置",
            "Ubuntu Grid": "Ubuntu 網格",
            "Web View": "網頁",
            Scale: "縮放倍率",
            Units: "單位",
            "Device Unit": "裝置單位",
            "Design Resolution": "設計解析度",
            "%@px on Sketch = 1%@ on device": "%@px Sketch = 1%@ 裝置",
            "Color format": "色碼格式",
            "Color hex": "十六進位色碼",
            "ARGB hex": "ARGB 十六進位色碼",
            "Artboard order": "畫板排序",
            "Order by artboard rows": "按畫板行排序",
            "Order by artboard columns": "按畫板列排序",
            "Order by alphabet": "按名稱排序",
            "Order by layer order": "按圖層順序",
            Positive: "正序",
            Reverse: "逆序",
            Save: "儲存",
            Width: "寬",
            Height: "高",
            Top: "上方",
            Right: "右側",
            Bottom: "下方",
            Left: "左側",
            "Fill / Color": "填色 / 色彩",
            Border: "邊框",
            Opacity: "不透明度",
            Radius: "圓角",
            Shadow: "陰影",
            Style: "樣式名稱",
            "Font size": "字型大小",
            Line: "行高",
            Typeface: "字體",
            Character: "字距",
            Paragraph: "段落間距",
            "Percentage of artboard": "轉換為畫布尺寸的百分比",
            Mark: "標記",
            All: "全選",
            None: "全不選",
            "Select filtered": "選擇篩選結果",
            "Selection of Sketch": "Sketch 選取的畫布",
            "Current of Sketch": "Sketch 目前的畫布",
            Filter: "篩選",
            Export: "匯出",
            Position: "位置",
            Size: "尺寸",
            Family: "字型",
            Spacing: "空間",
            Content: "內容",
            "All artboards": "所有畫布",
            "Start points": "起點畫布",
            "No slices added!": "尚無切圖",
            "No color names added!": "尚未添加色彩命名",
            "Select 1 or 2 layers to mark!": "標記前，請先選擇 1 到 2 個圖層",
            "Select a text layer to mark!": "標記前，請先選擇文字圖層",
            "Select a layer to mark!": "標記前，請先選擇圖層",
            "Select any layer to mark!": "標記前，請先選擇任意個圖層",
            "Export spec": "匯出規範",
            "Export to:": "匯出到:",
            "Exporting...": "正在匯出...",
            "Please wait for former task to exit": "請等待先前的任務完成",
            "Cancelled by user": "用戶取消了任務",
            "Export complete! Takes %@ seconds": "匯出完畢! 耗時 %@ 秒",
            "The slice not in current artboard.": "此切圖位於其他畫布裡",
            "Inside Border": "内邊框",
            "Outside Border": "外邊框",
            "Center Border": "中心邊框",
            "Inner Shadow": "內陰影",
            "Outer Shadow": "外陰影",
            Offset: "偏移",
            Effect: "效果",
            Blur: "模糊",
            Spread: "擴散",
            "No artboards!": "沒有畫布",
            "You need add some artboards.": "您需要先新增畫布",
            "No colors added!": "尚無色彩",
            "Select a layer to add exportable!": "匯出前請選擇圖層",
            "Import complete!": "匯入完畢",
            "Processing layer %@ of %@": "正在處理圖層... %@ / %@",
            "Advanced mode": "進階模式",
            "Export layer influence rect": "匯出圖層的影響尺寸",
            "Keyboard shortcut": "快捷鍵",
          },
        },
      };
      meaxure.render(data);
    </script>
  </body>
</html>
